Android 13 (SDK 33) membawa perubahan besar pada permission. Beberapa permission lama berubah, dipisah, atau digantikan permission baru. Jika aplikasi Anda tidak update, request permission akan gagal dan fitur menjadi error.
1. Perubahan Permission di Android 13+
Android 13 memperkenalkan permission baru seperti:
- READ_MEDIA_IMAGES
- READ_MEDIA_VIDEO
- READ_MEDIA_AUDIO
Permission READ_EXTERNAL_STORAGE sudah tidak digunakan lagi pada SDK 33.
2. Contoh Manifest Permission Android 13+
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
3. Request Permission dengan Kotlin
private val requestPermission =
registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
if (granted) {
// Izin diberikan
} else {
// Izin ditolak
}
}
fun askForPermission() {
requestPermission.launch(Manifest.permission.READ_MEDIA_IMAGES)
}
4. Request Banyak Permission Sekaligus
private val multiPermission =
registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
permissions.entries.forEach {
Log.d("PERMISSION", "${it.key} = ${it.value}")
}
}
fun askMulti() {
multiPermission.launch(
arrayOf(
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.READ_MEDIA_VIDEO
)
)
}
5. Menangani Permission yang Ditolak
if (!shouldShowRequestPermissionRationale(Manifest.permission.READ_MEDIA_IMAGES)) {
// User memilih "Don't ask again"
// Tampilkan dialog ke Settings
}
6. Membuka Pengaturan Aplikasi
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
intent.data = Uri.fromParts("package", packageName, null)
startActivity(intent)
7. Permission Khusus Notifikasi (Android 13)
Android 13 menambahkan permission baru untuk menampilkan notifikasi:
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
8. Best Practice Permission Android
- Request permission hanya ketika dibutuhkan.
- Berikan alasan kepada user sebelum meminta izin.
- Gunakan dialog custom untuk menjelaskan manfaatnya.
- Gunakan ActivityResultContract, hindari API lama.
- Update manifest agar kompatibel dengan Android 13+.
Dengan mematuhi aturan permission Android terbaru, aplikasi Anda akan berjalan lebih aman, stabil, dan kompatibel dengan semua versi Android modern.