自定義權(quán)限,主要用于保護(hù)被賦予權(quán)限的組件。
安卓中目前,我只在設(shè)置屬性 exported 為 true 的 Activity 中使用過(guò)。
下面記錄一下自定義權(quán)限方法:
1.首先需要聲明這個(gè)權(quán)限:
<permission
android:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"] />
| 屬性 | 含義 | 是否必須 |
|---|---|---|
| name | 自定義的權(quán)限名稱,需要遵循Android權(quán)限定義命名方案:.permission. | 是 |
| protectionLevel | 與權(quán)限相關(guān)的"風(fēng)險(xiǎn)級(jí)別"。必須是以下值之一: normal,dangerous, signature, signatureOrSystem 。這取決于保護(hù)級(jí)別,在確定是否授予權(quán)限時(shí),系統(tǒng)可能采取不同的操作。normal 表示權(quán)限是低風(fēng)險(xiǎn)的,不會(huì)對(duì)系統(tǒng)、用戶或其他應(yīng)用程序造成危害;dangerous 表示權(quán)限是高風(fēng)險(xiǎn)的,系統(tǒng)將可能要求用戶輸入相關(guān)信息,才會(huì)授予此權(quán)限;signature 表示只有當(dāng)應(yīng)用程序所用數(shù)字簽名與聲明引權(quán)限的應(yīng)用程序所用數(shù)字簽名相同時(shí),才能將權(quán)限授給它;signatureOrSystem 表示將權(quán)限授給具有相同數(shù)字簽名的應(yīng)用程序或android 包類。這一保護(hù)級(jí)別適和于非常特殊的情況,比如多個(gè)供應(yīng)商需要通過(guò)系統(tǒng)映像共享功能時(shí) | 是 |
| permissionGroup | 可以將權(quán)限放在一個(gè)組中,但對(duì)于自定期義權(quán)限,應(yīng)該避免設(shè)置此屬性。如果確實(shí)希望設(shè)置此屬性,可能使用以下屬性代替:android.permisson-group.SYSTEM_TOOLS | 否 |
| label | 可使用它對(duì)權(quán)限進(jìn)行簡(jiǎn)短描述 | 否 |
| description | 使用它提供對(duì)權(quán)限用途和所保護(hù)對(duì)象的更有用的描述 | 否 |
| icon | 權(quán)限可以與資源目錄以外的圖標(biāo)相關(guān)聯(lián) ( 比如@drawable/myicon) | 否 |
- 使用權(quán)限
注意兩點(diǎn):
- 1.使用時(shí),使用到這個(gè)權(quán)限的應(yīng)用都需要聲明這個(gè)權(quán)限
- 2.權(quán)限的格式為 .permission.
累了,不想寫