Uygulama izinlerini bildirme

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:

ziyaret edin.

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.