Kullanmaya ilişkin iş akışında belirtildiği gibi, izinleri (uygulamanız uygulama isteğinde bulunuyorsa) bu izinleri uygulamanızın manifest dosyasında beyan etmeniz gerekir. Bu beyanlar, uygulama mağazalarının ve kullanıcıların izin grubunu anlamasına yardımcı olur. talep edebilir.
İzin isteme süreci, iznin türüne göre izin:
- İzin, yükleme zamanıysa izni kullanabilirsiniz. Örneğin, veya imza izni varsa izin otomatik olarak yükleme süresidir.
- İzin, çalışma zamanıysa izin veya özel izin ve uygulamanızın Android 6.0 (API düzeyi 23) veya sonraki sürümleri çalıştıran bir cihazda yüklüyse çalışma zamanı izni veya özel ekleyebilirsiniz.
Uygulama manifestine beyan ekle
Uygulamanızın isteyebileceği bir izni beyan etmek için uygun
<uses-permission>
öğesi şurada:
uygulamanızın manifest dosyasına ekleyin. Örneğin, kameraya erişmesi gereken bir uygulama
AndroidManifest.xml
içinde şu satırı içeriyor:
<manifest ...> <uses-permission android:name="android.permission.CAMERA"/> <application ...> ... </application> </manifest>
Donanımı isteğe bağlı olarak bildir
Bazı izinler:
CAMERA
, uygulamanızı
yalnızca bazı Android cihazlarda bulunan donanım parçalarına erişebilir. Uygulamanız
sistemle ilişkili bu donanımlarla ilişkili
izin,
Uygulamanızın, bu özelliğe sahip olmayan bir cihazda çalışmaya devam edip edemeyeceğini düşünün
donanım. Çoğu durumda, donanım isteğe bağlı olduğundan
donanımını isteğe bağlı olarak android:required
false
olarak
<uses-feature>
beyanı, as
bir AndroidManifest.xml
dosyasından aşağıdaki kod snippet'inde gösterilmektedir:
<manifest ...> <application> ... </application> <uses-feature android:name="android.hardware.camera" android:required="false" /> <manifest>.
Donanım kullanılabilirliğini belirleyin
Donanımın isteğe bağlı olduğunu beyan ederseniz uygulamanız
o donanıma sahip olmayan cihazlar. Cihazda belirli bir
bir donanım parçası olarak
hasSystemFeature()
yöntemini çağırın. Donanım mevcut değilse
ilgili özelliği uygulamanızda devre dışı bırakabilirsiniz.
Kotlin
// Check whether your app is running on a device that has a front-facing camera. if (applicationContext.packageManager.hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { // Continue with the part of your app's workflow that requires a // front-facing camera. } else { // Gracefully degrade your app experience. }
Java
// Check whether your app is running on a device that has a front-facing camera. if (getApplicationContext().getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FRONT)) { // Continue with the part of your app's workflow that requires a // front-facing camera. } else { // Gracefully degrade your app experience. }
İzinleri API düzeyine göre bildirme
Yalnızca çalışma zamanında istenen izinleri destekleyen cihazlarda bir izin beyan etmek için
Android 6.0 (API düzeyi 23) veya sonraki sürümleri çalıştıran cihazlarda
<uses-permission-sdk-23>
öğesini kullanın
<uses-permission>
öğesi.
Bu öğelerden birini kullanırken maxSdkVersion
özelliğini ayarlayabilirsiniz.
Android'den daha yüksek bir sürümü çalıştıran cihazların
belirtilen değer için belirli bir izin gerekmez. Bu şekilde şunları yapabilirsiniz:
uyumluluk sağlamaya devam ederken gereksiz izinleri ortadan kaldırmalı
eski cihazlarda kullanılabilir.
Örneğin, uygulamanız fotoğraflar gibi medya içerikleri gösterebilir
kullanıcının uygulamanızda oluşturduğu içerikler veya videolar. Böyle bir durumda
bunu tek yapmanız gereken
READ_EXTERNAL_STORAGE
ve
uygulamanız hedeflediği sürece Android 10 (API düzeyi 29) veya sonraki sürümleri çalıştırmalıdır
Android 10 veya sonraki sürümler. Ancak, eski cihazlarla uyumluluk açısından
READ_EXTERNAL_STORAGE
iznini beyan edip
android:maxSdkVersion
- 28.