Özel izinler iste

Özel izin, özellikle hassas veya doğrudan kullanıcı gizliliğiyle ilgili olmayan içerikler Bu izinler: yükleme zamanından farklı izinleri ve çalışma zamanı izinleri hakkında daha fazla bilgi edinin.

Şekil 1: Sistemdeki Özel uygulama erişimi ekranı Ayarlar'ı tıklayın.

Bazı özel izin örnekleri şunlardır:

  • Tam alarm planlama.
  • Diğer uygulamaları görüntüleme ve bunların üzerinde çizim yapma.
  • Tüm depolama verilerine erişiliyor.

Özel izin beyan eden uygulamalar, Özel uygulama erişimi bölümünde gösterilir. sayfasına gidin (şekil 1). Uygulamaya özel bir izin vermek için kullanıcının şu sayfaya gitmesi gerekir: Ayarlar > Uygulamalar > Özel uygulama erişimi.

İş akışı

Özel izin istemek için aşağıdakileri yapın:

  1. Uygulamanızın manifest dosyasında özel uygulamanızın ihtiyaç duyabileceği izinlerin isteği gönderin.
  2. Uygulamanızın kullanıcı deneyimini, uygulamanızdaki belirli işlemlerin ilişkilendirileceği şekilde tasarlayın erişim izni verebilirsiniz. Kullanıcılara hangi işlemlerin yapılabileceğini bildirin uygulamanızın gizli kullanıcı verilerine erişmesine izin vermesini gerektirir.
  3. Kullanıcının uygulamanızda belirli bir gizli kullanıcıya erişim gerektiren görev veya işlem verileri. O anda uygulamanız sizin için o verilere erişmek için gereklidir.
  4. Kullanıcının, sağladığınız özel izni daha önce pek çok bilgi sağlayabilir. Bunu yapmak için her iznin özel kontrol işlevine ekleme gerekir. İzin verilirse uygulamanız gizli kullanıcıya erişebilir verileri. Çalışmıyorsa bir sonraki adıma geçin. Not: Aşağıdakilerin sizin için uygun olup olmadığını gerekli izinleri gerektiren bir işlemi her gerçekleştirdiğinizde ilgili izne sahip olmalısınız. iznidir.
  5. Bir kullanıcı arayüzü öğesinde kullanıcıya açıkça görünen bir gerekçe sunun. Uygulamanızın hangi verilere erişmeye çalıştığını ve uygulamanın hangi avantajlara sahip olduğunu açıklar kullanıcıya sağlayabilir. Ayrıca, Uygulamanız, izin vermek için kullanıcıları sistem ayarlarına gönderdiğinden, Kullanıcıların bu izni nasıl verebileceğini açıklayan kısa talimatlar içermelidir. inceleyeceğiz. Gerekçe kullanıcı arayüzünde, kullanıcıya kabul etmeyebilir. Kullanıcı bir sonraki adıma geçin.
  6. Uygulamanızın erişmesi için gereken özel izni isteyin gizli kullanıcı verilerini içerebilir. Bu durum büyük olasılıkla, söz konusu kullanıcının izin verebileceği sistem ayarlarında yer alan bir sayfadır. Beğenmeyi kaldır çalışma zamanı izinlerini pop-up izni yok iletişim kutusu.
  7. Kullanıcının yanıtını kontrol edin. Kullanıcının özel izni vermeyi mi yoksa reddetmeyi mi tercih ettiği iznidir (onResume() yöntemi).
  8. Kullanıcı, uygulamanıza izin verdiyse kullanıcının uygulamanıza erişmesine izin verin kullanıcı verileri. Kullanıcı bunun yerine izni reddettiyse yazılım düzeyini en iyi uygulamaları paylaştık. kullanıcıya gerçeğe aykırı bilgiler olmadan da tarafından korunur.
ziyaret edin.
Şekil 2: Özel bildirme ve isteme iş akışı izin verir.

Özel izinler iste

Çalışma zamanı izinlerinden farklı olarak, kullanıcı şu konumdaki Özel Uygulama Erişimi sayfasından özel izinler vermelidir: sistem ayarları. Uygulamalar kullanıcıları oraya bir intent kullanarak yönlendirebileceği için uygulamayı duraklatır. ve verilen özel izin için ilgili ayarlar sayfasını başlatır. Kullanıcı uygulamaya geri döndüğünde, uygulama iznin kullanılıp kullanılmadığını kontrol edebilir onResume() işlevinde verildi.

Aşağıdaki örnek kod, SCHEDULE_EXACT_ALARMS kullanıcıların özel izni:

val alarmManager = getSystemService<AlarmManager>()!!
when {
   // if permission is granted, proceed with scheduling exact alarms…
   alarmManager.canScheduleExactAlarms() -> {
       alarmManager.setExact(...)
   }
   else -> {
       // ask users to grant the permission in the corresponding settings page
       startActivity(Intent(ACTION_REQUEST_SCHEDULE_EXACT_ALARM))
   }
}

onResume() ürününde izni kontrol etmek ve kullanıcı kararlarını işlemek için örnek kod:

override fun onResume() {
   // ...

   if (alarmManager.canScheduleExactAlarms()) {
       // proceed with the action (setting exact alarms)
       alarmManager.setExact(...)
   }
   else {
       // permission not yet approved. Display user notice and gracefully degrade
       your app experience.
       alarmManager.setWindow(...)
   }
}

En iyi uygulamalar ve ipuçları

Aşağıdaki bölümlerde, kampanya oluştururken göz önünde bulundurulacak bazı en iyi uygulamalar ve özel izinler istiyorlar.

Her iznin kendi kontrol yöntemi vardır

Özel izinler çalışma zamanından farklı çalışır izinleriyle ilgili daha fazla bilgi edinin. Bunun yerine permissions API referansını inceleyin. sayfasına gidin ve işlevleri kullanabilirsiniz. Örnek olarak şunlar verilebilir: AlarmManager#canScheduleExactAlarms() - SCHEDULE_EXACT_ALARMS ve Environment#isExternalStorageManager() - MANAGE_EXTERNAL_STORAGE iznidir.

Bağlam içi istek

Çalışma zamanı izinlerine benzer şekilde, uygulamalar özel izinler istemelidir gereken bağlamda belirli bir işlem isteğinde bulunduğunda, iznidir. Örneğin, SCHEDULE_EXACT_ALARMS iznini istemek için bekleyebilirsiniz. kullanıcı belirli bir zamanda gönderilecek bir e-posta planlayana kadar.

İsteği açıkla

Sistem ayarlarına yönlendirmeden önce bir gerekçe belirtin. Kullanıcılar uygulamanın geçici olarak özel izinleri vermesini sağlayın, başlamadan önce uygulama içi bir kullanıcı arayüzü gösterin niyeti, sistem ayarlarındaki Özel Uygulama Erişimi sayfasında başlatın. Bu kullanıcı arayüzü uygulamanın neden izne ihtiyacı olduğunu ve kullanıcının nasıl izin vermesi gerektiğini net bir şekilde açıklamalıdır bu izni kullanabilirsiniz.