- sintaksis:
<permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | ...] />
- terdapat dalam:
<manifest>
- deskripsi:
- Mendeklarasikan izin keamanan yang digunakan untuk membatasi akses ke komponen atau fitur tertentu milik aplikasi ini atau aplikasi lainnya. Untuk mengetahui informasi selengkapnya tentang cara kerja izin, lihat bagian Izin di ringkasan manifes aplikasi dan Tips keamanan.
- atribut:
android:description
- Deskripsi izin yang dapat dibaca pengguna, yang lebih panjang dan lebih
informatif dari labelnya. Contoh ini mungkin menampilkan, misalnya, untuk menjelaskan
izin kepada pengguna saat pengguna diminta
untuk memberikan izin ke aplikasi lain.
Atribut ini ditetapkan sebagai referensi ke resource string. Tidak seperti atribut
label
, atribut ini tidak boleh berupa string mentah. android:icon
- Referensi ke resource drawable untuk ikon yang menggambarkan izin.
android:label
- Nama yang dapat dibaca pengguna untuk izin.
Untuk memudahkan Anda, label dapat langsung ditetapkan sebagai string mentah selagi Anda mengembangkan aplikasi. Namun, setelah aplikasi siap dipublikasikan, tetapkan label sebagai referensi ke resource string, sehingga dapat dilokalkan seperti string lain pada antarmuka pengguna.
android:name
- Nama yang akan digunakan dalam
kode untuk merujuk pada izin, seperti dalam
elemen
<uses-permission>
atau atributpermission
komponen aplikasi.Catatan: Sistem tidak mengizinkan beberapa paket mendeklarasikan izin dengan nama yang sama, kecuali semua paket ditandatangani dengan sertifikat yang sama. Jika sebuah paket mendeklarasikan suatu izin, sistem tidak akan mengizinkan pengguna menginstal paket lain dengan nama izin yang sama, kecuali jika paket tersebut ditandatangani dengan sertifikat yang sama seperti paket pertama.
Karena alasan ini, Google merekomendasikan untuk memberi awalan pada izin dengan nama paket aplikasi, menggunakan penamaan gaya domain terbalik. Ikuti awalan ini dengan
.permission.
, lalu deskripsi kemampuan yang diwakili oleh izin tersebut dalam SNAKE_CASE huruf besar. Misalnya:com.example.myapp.permission.ENGAGE_HYPERSPACE
.Dengan mengikuti rekomendasi ini, Anda dapat menghindari konflik penamaan serta mengidentifikasi dengan jelas pemilik dan maksud izin kustom.
android:permissionGroup
- Menetapkan izin ini ke grup. Nilai atribut ini adalah
nama grup, yang dideklarasikan dengan
elemen
<permission-group>
dalam aplikasi ini atau aplikasi lainnya. Jika atribut ini tidak ditetapkan, izin tidak akan menjadi milik grup apa pun. android:protectionLevel
-
Menggambarkan potensi risiko yang tersirat dalam izin dan menunjukkan prosedur yang harus diikuti sistem saat menentukan apakah akan memberikan izin kepada aplikasi yang memintanya.
Setiap tingkat perlindungan terdiri dari satu jenis izin dasar serta tanpa tanda atau dengan beberapa tanda. Contohnya, tingkat perlindungan
"dangerous"
tidak memiliki tanda. Sebaliknya, tingkat perlindungan"signature|privileged"
adalah kombinasi dari jenis izin dasar"signature"
dan tanda"privileged"
.Tabel berikut ini menampilkan semua jenis izin dasar. Untuk daftar tanda, lihat
protectionLevel
.Nilai Arti "normal"
Nilai default. Izin dengan risiko lebih rendah yang memungkinkan aplikasi pemohon mengakses fitur tingkat aplikasi yang terisolasi, dengan risiko minimal terhadap aplikasi lain, sistem, atau pengguna. Sistem akan secara otomatis memberikan jenis izin ini ke aplikasi permintaan saat penginstalan, tanpa meminta persetujuan eksplisit dari pengguna, meskipun pengguna selalu memiliki opsi untuk meninjau izin ini sebelum penginstalan. "dangerous"
Izin dengan risiko lebih tinggi yang akan memungkinkan aplikasi pemohon mengakses data pengguna pribadi atau kontrol perangkat yang dapat memberikan dampak negatif kepada pengguna. Karena jenis izin ini menimbulkan potensi risiko, sistem mungkin tidak secara otomatis memberikannya ke aplikasi permintaan. Contohnya, setiap izin berbahaya yang diminta oleh aplikasi mungkin ditampilkan kepada pengguna dan memerlukan konfirmasi sebelum prosesnya dilanjutkan, atau beberapa metode lain dapat dilakukan agar pengguna tidak mengizinkan penggunaan fasilitas tersebut secara otomatis. "signature"
Izin yang hanya akan diberikan oleh sistem jika aplikasi pemohon ditandatangani dengan sertifikat yang sama seperti aplikasi yang menyatakan izin. Jika sertifikat cocok, sistem akan otomatis memberikan izin tanpa memberi tahu pengguna atau meminta persetujuan eksplisit pengguna. "knownSigner"
Izin yang hanya akan diberikan oleh sistem jika aplikasi yang meminta ditandatangani dengan sertifikat yang diizinkan. Jika sertifikat yang meminta tercantum, sistem akan otomatis memberikan izin tanpa memberi tahu pengguna atau meminta persetujuan eksplisit pengguna. "signatureOrSystem"
Sinonim lama untuk
"signature|privileged"
. Tidak digunakan lagi di API level 23.Izin yang hanya akan diberikan oleh sistem ke aplikasi yang ada dalam folder khusus di image sistem Android atau yang ditandatangani dengan sertifikat yang sama seperti aplikasi yang menyatakan izin. Hindari penggunaan opsi ini karena, di mana pun lokasi penginstalan aplikasi, tingkat perlindungan
"signature"
sudah memadai untuk sebagian besar kebutuhan dan pekerjaan.Izin
"signatureOrSystem"
digunakan untuk situasi khusus tertentu ketika beberapa vendor memiliki aplikasi yang di-build ke dalam image sistem dan harus berbagi fitur tertentu secara eksplisit karena di-build bersama-sama.
- diperkenalkan di:
- API level 1
- lihat juga:
<uses-permission>
<permission-tree>
<permission-group>
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-08-22 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2024-08-22 UTC."],[],[]]