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.