Mendeklarasikan izin aplikasi

Seperti yang disebutkan dalam alur kerja untuk menggunakan izin, jika aplikasi Anda meminta izin aplikasi, Anda harus mendeklarasikan izin ini dalam file manifes aplikasi. Deklarasi ini membantu app store dan pengguna memahami kumpulan izin yang mungkin diminta aplikasi Anda.

Proses melakukan permintaan izin ini bergantung pada jenis izin:

  • Jika izin adalah izin waktu penginstalan, seperti izin normal atau izin tanda tangan, izin tersebut akan otomatis diberikan pada waktu penginstalan.
  • Jika izin adalah izin runtime, dan jika aplikasi diinstal di perangkat yang menjalankan Android 6.0 (API level 23) atau yang lebih baru, Anda harus meminta sendiri izin tersebut.

Menambahkan deklarasi ke manifes aplikasi

Untuk mendeklarasikan izin yang mungkin diminta aplikasi Anda, sertakan elemen <uses-permission> yang sesuai dalam file manifes aplikasi Anda. Misalnya, aplikasi yang perlu mengakses kamera akan memiliki baris ini dalam manifes:

AndroidManifest.xml

<manifest ...>
    <uses-permission android:name="android.permission.CAMERA"/>
    <application ...>
        ...
    </application>
</manifest>

Mendeklarasikan hardware sebagai opsional

Sejumlah izin, seperti CAMERA, memungkinkan aplikasi Anda mengakses bagian hardware yang hanya dimiliki oleh perangkat Android tertentu. Jika aplikasi Anda mendeklarasikan salah satu dari izin terkait hardware, pertimbangkan apakah aplikasi tidak dapat berjalan sama sekali di perangkat yang tidak memiliki hardware tersebut. Dalam sebagian besar kasus, hardware bersifat opsional, jadi sebaiknya deklarasikan hardware sebagai opsional dengan menyetel android:required ke false di deklarasi <uses-feature>, seperti yang ditampilkan di cuplikan kode berikut:

AndroidManifest.xml

<manifest ...>
    <application>
        ...
    </application>
    <uses-feature android:name="android.hardware.camera"
                  android:required="false" />
<manifest>

Menentukan ketersediaan hardware

Jika Anda mendeklarasikan hardware sebagai opsional, aplikasi Anda mungkin dapat dijalankan di perangkat yang tidak memiliki hardware tersebut. Untuk memeriksa apakah perangkat memiliki bagian hardware tertentu, gunakan metode hasSystemFeature(), seperti yang ditampilkan dalam cuplikan kode berikut. Jika hardware tidak tersedia, nonaktifkan fitur tersebut dengan lancar di aplikasi Anda.

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.
}

Mendeklarasikan izin berdasarkan API level

Untuk mendeklarasikan izin hanya pada perangkat yang mendukung izin runtime, yakni perangkat yang menjalankan Android 6.0 (API level 23) atau yang lebih baru, sertakan elemen uses-permission-sdk-23, bukan elemen uses-permission.

Saat menggunakan salah satu elemen ini, Anda dapat menetapkan atribut maxSdkVersion. Atribut ini menunjukkan bahwa perangkat yang menjalankan versi lebih tinggi dari maxSdkVersion tidak memerlukan izin tertentu.