İ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
veACCESS_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> ...
- İzinleri ve durumu gruba göre listeleyin:
- Uygulamanızı izinleri kullanan hizmetler için analiz edin.
Ek kaynaklar
- Android izinleri için Materyal Tasarım yönergeleri
- Android Marshmallow 6.0: İzin İsteme: Bu videoda aşağıdaki konular açıklanmıştır: Android çalışma zamanı izin modeli ve kullanıcılardan izin istemenin doğru yolu izin verir.
- Uygulamanın neden izinlere ihtiyacı olduğunu açıklayın
- Benzersiz tanımlayıcılarla ilgili en iyi uygulamalar