- 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>
<izin>
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 2025-07-27 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 2025-07-27 UTC."],[],[],null,["# <permission\u003e\n\nsyntax:\n:\n\n ```xml\n \u003cpermission android:description=\"string resource\"\n android:icon=\"drawable resource\"\n android:label=\"string resource\"\n android:name=\"string\"\n android:permissionGroup=\"string\"\n android:protectionLevel=[\"normal\" | \"dangerous\" |\n \"signature\" | ...] /\u003e\n ```\n\ncontained in:\n: [\u003cmanifest\u003e](/guide/topics/manifest/manifest-element)\n\ndescription:\n: Declares a security permission used to\n limit access to specific components or features of this or other applications.\n For more information about how permissions work, see the [Permissions](/guide/topics/manifest/manifest-intro#perms) section in the app manifest overview and [Security tips](/guide/topics/security/security).\n\nattributes:\n:\n\n `android:description`\n\n : A user-readable description of the permission that is longer and more informative than the label. It might display, for example, to explain the permission to the user when the user is asked to grant the permission to another application.\u003cbr /\u003e\n\n\n This attribute is set as a reference to a string resource.\n Unlike the `label` attribute, it can't be a raw string.\n\n `android:icon`\n : A reference to a drawable resource for an icon that represents the\n permission.\n\n `android:label`\n\n : A user-readable name for the permission.\u003cbr /\u003e\n\n\n As a convenience, the label can be directly set\n as a raw string while you're developing the application. However,\n when the application is ready to publish, set it as a\n reference to a string resource, so that it can be localized like other\n strings in the user interface.\n\n `android:name`\n : The name to be used in\n code to refer to the permission, such as in a\n [\u003cuses-permission\u003e](/guide/topics/manifest/uses-permission-element) element or the\n `permission` attributes of application components.\n\n\n **Note:** The system doesn't let multiple packages declare\n a permission with the same name unless all the packages are signed with the\n same certificate. If a package declares a permission, the system doesn't permit\n the user to install other packages with the same permission name, unless\n those packages are signed with the same certificate as the first package.\n\n For this reason, Google recommends prefixing permissions with the app's package name,\n using reverse-domain-style naming.\n Follow this prefix with `.permission.` and then a description of the\n capability that the permission represents in upper SNAKE_CASE. For example:\n `com.example.myapp.permission.ENGAGE_HYPERSPACE`.\n\n Following this recommendation avoids naming collisions and helps clearly identify the owner\n and intention of a custom permission.\n\n `android:permissionGroup`\n : Assigns this permission to a group. The value of this attribute is\n the name of the group, which is declared with the\n [\u003cpermission-group\u003e](/guide/topics/manifest/permission-group-element) element in this\n or another application. If this attribute isn't set, the permission\n doesn't belong to a group.\n\n `android:protectionLevel`\n\n :\n Characterizes the potential risk implied in the permission and\n indicates the procedure for the system to follow when determining\n whether to grant the permission to an application requesting it.\n\n\n Each protection level consists of a base permission type and zero or more\n flags. For example, the `\"dangerous\"` protection level has no\n flags. In contrast, the protection level `\"signature|privileged\"`\n is a combination of the `\"signature\"` base permission type and the\n `\"privileged\"` flag.\n\n\n The following table shows all base permission types. For a list of flags, see\n [protectionLevel](/reference/android/R.attr#protectionLevel).\n\n | Value | Meaning |\n |-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n | `\"normal\"` | The default value. A lower-risk permission that gives requesting applications access to isolated application-level features with minimal risk to other applications, the system, or the user. The system automatically grants this type of permission to a requesting application at installation, without asking for the user's explicit approval, though the user always has the option to review these permissions before installing. |\n | `\"dangerous\"` | A higher-risk permission that gives a requesting application access to private user data or control over the device that can negatively impact the user. Because this type of permission introduces potential risk, the system might not automatically grant it to the requesting application. For example, any dangerous permissions requested by an application might be displayed to the user and require confirmation before proceeding, or some other approach might be taken to avoid the user automatically granting the use of such facilities. |\n | `\"signature\"` | A permission that the system grants only if the requesting application is signed with the same certificate as the application that declared the permission. If the certificates match, the system automatically grants the permission without notifying the user or asking for the user's explicit approval. |\n | `\"knownSigner\"` | A permission that the system grants only if the requesting application is signed with [an allowed certificate](/guide/topics/permissions/defining#grant-signature-permissions). If the requester's certificate is listed, the system automatically grants the permission without notifying the user or asking for the user's explicit approval. |\n | `\"signatureOrSystem\"` | *Old synonym for `\"signature|privileged\"`. Deprecated in API level 23.* A permission that the system grants only to applications that are in a dedicated folder on the Android system image *or* that are signed with the same certificate as the application that declared the permission. Avoid using this option, as the `\"signature\"` protection level is sufficient for most needs and works regardless of where apps are installed. The `\"signatureOrSystem\"` permission is used for certain special situations where multiple vendors have applications built into a system image and need to share specific features explicitly because they are being built together. |\n\nintroduced in:\n: API level 1\n\nsee also:\n: [\u003cuses-permission\u003e](/guide/topics/manifest/uses-permission-element)\n\n [\u003cpermission-tree\u003e](/guide/topics/manifest/permission-tree-element)\n\n [\u003cpermission-group\u003e](/guide/topics/manifest/permission-group-element)"]]