İzin istekleri, cihazda bulunan hassas bilgileri korur ve yalnızca uygulamanızın çalışması için bilgiye erişim gerektiğinde kullanılmalıdır. Bu dokümanda, bu tür bilgilere erişmek zorunda kalmadan aynı (veya daha iyi) işlevleri nasıl sağlayabileceğinizle ilgili ipuçları verilmektedir. Bu doküman, izinlerin Android işletim sisteminde nasıl çalıştığıyla ilgili kapsamlı bir tartışma değildir.
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 ihtiyaç duyduğunda izin isteme tarafından korunur. Bu durum, uygulamanın genel davranışını (mutlaka) değiştirmese de hassas kullanıcı verilerinin işlenmesiyle ilgili birkaç değişiklik yapar:
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, isteğinizin açıklamasını hem istek sırasında hem de kullanıcı isteği reddederse takip iletişiminde sağlamanız gerekir.
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 izinlere izin verme ihtimali daha yüksektir.
İzin verme konusunda 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 izinleri (ör. Google Analytics'i kullanma) reddettiğini izlemek iyi bir fikirdir. Böylece, uygulamanızı bu izne bağımlı olmaktan kurtaracak şekilde yeniden yapılandırabilir veya uygulamanızın düzgün çalışması için neden izne ihtiyacınız olduğuna dair daha iyi bir açıklama sağlayabilirsiniz. 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, izin verme konusunda kullanıcının yükünü artırır ve dolayısıyla isteklerden en az birinin reddedilme olasılığını artırır.
Varsayılan işleyici olmanızı gerektiren izinler
Bazı uygulamalar, arama kayıtları ve SMS mesajlarıyla ilgili hassas kullanıcı bilgilerine erişmeye ihtiyaç duyar. 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 daha fazla bilgi edinmek için yalnızca şuralarda kullanılan izinlerle ilgili kılavuza bakın: 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 bazı izinleri zorunlu kılar. Örneğin,
Örneğin, reklamlar ve analiz kitaplıkları
Gerekli 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. Android 6.0'dan önce, uygulamanızın hiç çalışmıyorsa uygulama manifest dosyasında beyan ettiği tüm izinlere sahip olduğunu varsayabilirsiniz. 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 edilen 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ı, izin kullanan hizmetler açısından 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