文法(SYNTAX):
<permissionandroid:description="string resource"
android:icon="drawable resource"
android:label="string resource"
android:name="string"
android:permissionGroup="string"
android:protectionLevel=["normal" | "dangerous" |
"signature" | "signatureOrSystem"] />
被包含於(CONTAINED IN):
<manifest>
說明(DESCRIPTION):
這個元素用於聲明一個安全許可權,以便限制對具體的組件、或組件功能、或其他的應用的訪問。
屬性(ATTRIBUTES):
android:description
這個屬性用於給許可權定義一個使用者可讀的懂的描述,它要比標籤更長更詳細。它可以顯示給使用者,以便向使用者解釋許可權的含義---例如,當詢問使用者是否要給另一個應用程式授予對應的許可權的時候,就會把這個屬性所定義的說明顯示給使用者。
android:icon
這個屬性要引用一個可繪製的表徵圖資源,用於代表這個許可權。
android:label
這個屬性定義了一個能夠顯示給使用者的許可權名稱。
為了方便,在開發應用程式時,這個標籤能夠直接使用原生的字串。但是當應用程式要正式發布時,它應用使用一個字串資源來設定,以便它能夠跟使用者介面中的其他字串一樣被本地化。
android:name
這個屬性定義了許可權的名稱。它是在程式碼中引用的許可權的名稱---例如,在一個<uses-permission>元素中和應用程式組件中的permission屬性。
這個名稱必須是唯一的,因此要使用Java樣式的命名規則---例如:com.example.project.PERMITTED_ACTION
android:permissionGroup
這個屬性用於把這個許可權分配到一個許可權組中。這個屬性的值是一個許可權組的名稱,它必須是在本應用程式或另一個應用中用<permission-group>元素宣告的許可權組。如果這個屬性沒有被設定,那麼這個許可權不屬於任何許可權分組。
android:protectionLevel
特權就意味著潛在的風險,因此在判定是否要把許可權授予請求的應用程式時,使用這個屬性定義來指示系統應該遵循的過程。它可能是表中的值之一。
| 值 |
說明 |
| normal |
預設值。這是讓請求的應用程式訪問獨立的應用程式級功能的一個較低風險的許可權,它會給另一個應用程式、系統、或使用者帶來最小化的風險。系統在安裝應用程式時會自動的把這種類型的許可權授予請求的應用程式,而不需要使用者明確的批准(雖然在安裝應用程式之前,使用者始終可以有選擇的查看這些許可權)。 |
| dangerous |
這個是一個較高風險的授權,它會讓請求該許可權的應用程式訪問私人的使用者資料,或者控制使用者裝置,從而給使用者帶來負面影響。因為這種許可權會引入潛在的風險,因此系統不會自動把這種許可權授予請求這個許可權的應用程式。例如,應用程式所請求的這些dangerous類型的許可權,在確認處理之前,可以顯示給使用者,或者採用一些其他的方法,以避免使用者自動把許可權授予所請求的應用程式。 |
| signature |
系統只會把這種許可權授予具有相同數位簽章的應用程式,也就是說,請求該許可權的應用程式要與聲明該許可權的應用程式具有相同的數位簽章。如果認證匹配,系統就會自動的把該許可權請求許可權的應用程式,而不會通知使用者,也不會要求使用者明確的批准。 |
| signatureOrSystem |
系統只會把這種許可權授予Android系統鏡像中應用程式,或者是那些與系統鏡像中具有相同認證簽名的應用程式。請避免使用這個選項,因為signature類型的許可權應該足以滿足大多數工作的需要。SingatureOrSystem許可權主要用於某些特定的情境,如:多個廠商有一些要構建在系統鏡像中的應用程式,並且它們共用一些明確的特殊功能。 |
被引入版本(INTRODUCED IN):
API Level 1
摘自 FireOfStar的專欄