Android Uygulama Erişimlerini ve Arka Plan Görevlerini Nasıl Kontrol Eder?

Kerem Aydın·7 Temmuz 2026·⏱3 dk

Android, runtime-permissions modelini ve ayrı "special" izinleri kullanır; arka plan kısıtlamaları ise Doze, App Standby ve Background Execution Limits ile ekran dışındaki görevlerin yürütülmesini sınırlar. Uygulamanın düzgün çalışması için: yalnızca gerekli izinleri isteyin, kullanıcı için gerekçeyi açıklayın, arka plan çalışmaları için Foreground Service veya WorkManager kullanın ve izinlerin otomatik iptali ile pil optimizasyonlarını dikkate alın.

Android'de İzinler Nasıl Çalışır?

  • Runtime permissions: Android 6+ ile tehlikeli izinler (konum, kamera, kişiler vb.) uygulama çalışırken istenir; kullanıcı reddedebilir veya kalıcı olarak verebilir.
  • İzin grupları: Bir gruptaki tek bir izin, aynı gruptaki diğerlerine de erişim açar (ancak davranış sürümlere göre değişir).
  • Special permissions: MANAGE_EXTERNAL_STORAGE, SYSTEM_ALERT_WINDOW, MODIFY_PHONE_STATE vb. sistem ayarlarına açıkça geçiş gerektirir.
  • Auto-revoke: Uygulama uzun süre kullanılmazsa, sistem daha önce verilen izinleri otomatik olarak geri alabilir.
  • Scoped Storage: Dosya erişimi sınırlıdır; genel erişim için MediaStore veya SAF (Storage Access Framework) kullanın.

Pratikte: İşlem öncesinde her zaman ContextCompat.checkSelfPermission kontrolünü yapın, rationale (açıklama) gösterin ve kullanıcının reddetmesini doğru şekilde yönetin.

İzin isteme mantığını farklı Android sürümlerinde kontrol edin ve güncelleyin: İzinlerin ve special-permissions'ların davranışı Android 8–13 arasında değişmiştir.

Arka Plan Çalışma Kısıtlamaları: Neler Etkiler ve Doğru Şekilde Nasıl Aşılır?

  • Doze ve App Standby (cihaz boşta kaldığında etkinleşir) arka plan görevlerini ve senkronizasyonları duraklatır.
  • Background Execution Limits (Android 8+) foreground service olmadan uzun süreli arka plan çalışmasını yasaklar.
  • Arka plan konum kısıtlamaları: Android 10–11 itibarıyla arka plan konumu ayrı izin ve gerekçe gerektirir.
  • OEM pil optimizasyonları (Xiaomi, Huawei vb.) arka plan işlemlerini ek olarak sonlandırabilir.

Geliştiricilere öneriler:

  • Ertelenebilen görevler için WorkManager kullanın — sistem kısıtlamalarını dikkate alır ve görevleri doğru şekilde yeniden başlatır.
  • Uzun süreli arka plan aktivitesi için zorunlu bildirimle birlikte Foreground Service kullanın.
  • background-location iznini ayrı olarak isteyin ve arka planda neden konuma ihtiyaç duyulduğunu açıkça açıklayın.
  • Aynı anda çok sayıda izin istemeyin — izin isteklerini kullanım durumlarına göre dağıtın.

Pil optimizasyonlarını zorla devre dışı bırakmak kullanıcı deneyimini kötüleştirir. Talimat sunun ve bunu yalnızca gerçekten gerekli olduğunda önerin.

Yöneticiler ve Kullanıcılar İçin Pratik Adımlar

  • Uygulama izinlerini kontrol etme: Ayarlar → Uygulamalar → İzinler. Gereksiz erişimleri iptal edin.
  • Arka plan çalışmasını yönetme: Pil Ayarları → Arka plan aktivitesini kısıtlama veya "Pil Optimizasyonu".
  • Geliştiriciler için: Manifest dosyasında yalnızca gerekli permissions'ları beyan edin; requestPermissionFlow kullanın, onRequestPermissionsResult'i yönetin; dosyalar için WorkManager/ForegroundService ve SAF/MediaStore uygulayın.
  • Farklı Android sürümlerinde ve özel optimizasyonlara sahip cihazlarda test edin.

Sık Yapılan Hatalar

  • Kurulum sırasında tüm izinleri aynı anda istemek — güveni azaltır ve reddetme sayısını artırır.
  • Uzun süreli arka plan çalışması için foreground service'i göz ardı etmek — görevler basitçe durdurulur.
  • scoped storage ile traditional external storage'ı karıştırmak — dosya erişimi çalışmayabilir.
  • auto-revoke'u dikkate almamak — uygulama uzun süreli boşta kalmanın ardından "aniden" erişimi kaybeder.

SSS

  • Uygulamanın arka planda neden çalışmadığını nasıl anlarım? Logları, pil optimizasyonu politikalarını ve foreground service/WorkManager varlığını kontrol edin.
  • MANAGE_EXTERNAL_STORAGE istemeli miyim? Yalnızca uygulama gerçekten dosya sistemine küresel erişim gerektiriyorsa; SAF veya MediaStore tercih edilmelidir.
  • Arka plan konumu nasıl doğru şekilde istenir? Önce foreground-location isteyin ve faydasını açıklayın, ardından kullanıcıya açık bir açıklama ile ayrı olarak background-location isteyin.
  • auto-revoke nasıl önlenir? Uygulamada düzenli kullanıcı aktivitesini sürdürün veya uzun süreli boşta kalmanın hakların iptaline yol açacağını bilgilendirin.

Özet: Android'in izin modeli ve arka plan kısıtlamalarını anlamak, işlevselliği güvenli ve öngörülebilir şekilde uygulamaya olanak tanır — bunun için anahtar mekanizmalar şunlardır: minimum izin seti, WorkManager/Foreground Service, scoped storage ile doğru çalışma ve kullanıcıyla şeffaf iletişim.