Uygulama izinleri en iyi uygulamaları

İzin istekleri, bir cihazdaki hassas bilgileri korur ve yalnızca söz konusu araştırma için bilgiye erişim gerekli olduğunda kullanılmalıdır işlevi görür. Bu dokümanda, projenizi geliştirmek için Aynı (veya daha iyi) işlevlere erişim gerektirmeden bu tür bilgilere; izinlerin, kullanıcı izninin Google tarafından Android işletim sisteminde çalışıyor.

Android izinleriyle ilgili daha genel bir bakış için lütfen İzinlere genel bakış başlıklı makaleyi inceleyin. Kodunuzdaki izinlerle çalışmayla ilgili ayrıntılar için Uygulama izinleri isteme adlı makaleyi inceleyin.

Android 6.0 ve sonraki sürümlerde izinler

Android 6.0 (API düzeyi 23) ve sonraki sürümlerde uygulamalar şuradan izin isteyebilir: kullanıcı için daha doğru bir izleme deneyimi sunar. Bu şekilde uygulamalar şunları yapabilir: Uygulama, hizmetlere veya verilere gerçekten ihtiyaç duyduğunda izin isteme tarafından korunur. Bu, uygulamanın genelini (gereken) değiştirmese de hassas kullanıcı verilerinin kullanım biçimiyle alakalı birkaç değişiklik nasıl işlenir?

Daha ayrıntılı durumsal bağlam

Kullanıcılardan çalışma zamanında, uygulamanızın bağlamında, aşağıdakileri yapmalarına izin vermeleri istenir: bu izin gruplarının kapsadığı işlevlere erişebilir. Kullanıcılar, istenen bağlama göre daha hassastır. Herhangi bir uyuşmazlık amacınızın bile ne kadar önemli olduğunu kullanıcıya bunu neden yaptığınızı ayrıntılı bir şekilde bunu kontrol edebilirsiniz. Mümkün olduğunda, hem talep sırasında hem de bu e-postada kullanıcı isteği reddederse takip iletişim kutusu.

Bir izin isteğinin kabul edilme olasılığını artırmak için yalnızca istemde bulunan belirli bir özellik gerekli olduğunda. Örneğin, yalnızca mikrofon iste Kullanıcı mikrofon düğmesini tıkladığında erişin. Kullanıcıların bekledikleri bir izni isteyebilirler.

İzin verirken daha fazla esneklik

Kullanıcılar, istedikleri zaman ayrı ayrı izinlere erişimi reddedebilir ve Ayarlar'da görebilirsiniz, ancak işlevsellik ve bozulabilir. Kaç kullanıcının reddeddiğini izlemek kullanarak yeniden düzenleme yapabilirsiniz (ör. Google Analytics kullanarak) veya daha iyi bir izleme deneyimi Uygulamanızın düzgün çalışması için neden izne ihtiyacınız olduğuna dair açıklama. Siz Ayrıca, uygulamanızın, kullanıcılarınız için yalnızca belirli izin isteklerini reddedebilir veya ayarlarda izinleri kapatabilirsiniz.

İşlem yükünde artış

Kullanıcılardan bir grup olarak değil, tek tek izin grupları için erişim vermeleri istenir. Bu verebileceğiniz izin sayısını en aza indirmeyi üzerine konuşacağız. Bu durum, kullanıcıların izin verme yükünü ve dolayısıyla da izin isteklerden en az birinin reddedilme olasılığını artırır.

Varsayılan işleyici olmayı gerektiren izinler

Bazı uygulamalar, arama kayıtlarıyla ilgili hassas kullanıcı bilgilerine erişime bağlıdır ve SMS mesajları. Arama kayıtlarına özgü izinleri talep etmek istiyorsanız uygulamanızı Play Store'da yayınlamanıza rağmen, görüntülenen önce uygulamanızı temel sistem işlevi için varsayılan işleyici olarak ayarlamasına isteyebileceklerini anlamanız gerekir.

Varsayılan işleyiciler hakkında daha fazla bilgi için kullanıcılara yönelik varsayılan işleyici istemini görmek için yalnızca varsayılan işleyiciler arasından seçim yapabilirsiniz.

Çalıştığınız kütüphaneleri tanıyın

Uygulamanızda kullandığınız kitaplıklar bazen izin gerektirir. Örneğin, Örneğin, reklamlar ve analiz kitaplıkları Zorunlu ayarı uygulamak için LOCATION izin grubu işlevi görür. Ancak kullanıcı açısından izin isteği uygulamanızdan emin olun.

Kullanıcıların aynı dosya için daha az izin kullanan uygulamaları seçmesi yoksa geliştiricilerin kitaplıklarını gözden geçirmeleri ve gereksiz izinler kullanmayan üçüncü taraf SDK'ları. Örneğin, konum işlevi sunan bir kitaplık kullanıyorsanız, sizi şu an için FINE_LOCATION izni istemeyen konum tabanlı hedefleme işlevini kullanarak.

Konuma arka planda erişimi sınırlayın

Uygulamanız arka planda çalışırken konum, uygulamanın çekirdeği açısından kullanıma sunmalı ve kullanıcılara net bir fayda göstermelidir.

Her iki izin modelini test edin

Android 6.0 (API düzeyi 23) ve sonraki sürümlerde kullanıcılar uygulamaya izin verip iptal edebilir izinleri uygulama ve izin isteklerini paylaşmalarını isteyebilirsiniz. Kullanıcı Dolayısıyla uygulamanızı daha geniş bir koşul aralığında test etmeniz gerekir. Önceki uygulamanızın Android 6.0'dan daha eski bir sürümün yüklü olduğu uygulama manifest dosyasında beyan ettiği tüm izinlere sahiptir. Artık kullanıcı API düzeyinden bağımsız olarak herhangi bir uygulamanın izinlerini açabilir veya kapatabilir. Uygulamanızın farklı cihazlarda doğru çalıştığından emin olmak için izin senaryoları.

Aşağıdaki ipuçları, izinlerle ilgili kod sorunlarını bulmanıza yardımcı olacaktır API düzeyi 23 veya sonraki sürümleri çalıştıran cihazlarda:

  • Uygulamanızın mevcut izinlerini ve ilgili kod yollarını tanımlayın.
  • İzin korumalı hizmetler ve veriler genelinde kullanıcı akışlarını test edin.
  • Verilen veya iptal edilmiş izinlerin çeşitli kombinasyonlarıyla test edin. Örneğin, Örneğin, bir kamera uygulamasında CAMERA, READ_CONTACTS ve ACCESS_FINE_LOCATION inceleyebilirsiniz. Uygulamayı bu izinlerin her biriyle test etmeniz gerekir için izin verildiğinden emin olmak için en verimli şekilde kullanabilirsiniz.
  • Yönetmek için adb aracını kullanın komut satırından kaldırın:
    • İzinleri ve durumu gruba göre listeleyin:
      $ adb shell pm list permissions -d -g
    • Bir veya daha fazla izni verme veya iptal etme:
      $ adb shell pm [grant|revoke] <permission-name> ...
  • Uygulamanızı izinleri kullanan hizmetler için analiz edin.

Ek kaynaklar