Android復習(三)清單文件中的元素——>path-permission、permission、permission-group、permission-tree
<path-permission>
- 語法:
<path-permission android:path="string"
android:pathPrefix="string"
android:pathPattern="string"
android:permission="string"
android:readPermission="string"
android:writePermission="string" />
- 包含于:
<provider>- 說明:
- 定義內容提供程序中特定數據子集的路徑和所需權限。您可以多次指定此元素,以提供多個路徑。
- 屬性:
android:path- 內容提供程序數據子集的完整 URI 路徑。只能授予對由此路徑標識的特定數據的相應權限。用于提供搜索建議內容時,必須附加有“/search_suggest_query”。
android:pathPrefix- 內容提供程序數據子集的 URI 路徑的初始部分。可以授予對路徑共有此初始部分的所有數據子集的相應權限。
android:pathPattern- 內容提供程序數據子集的完整 URI 路徑,但可以使用以下通配符:
- 星號(“
*”)。此通配符匹配出現零次到多次的緊鄰前面的字符的一個序列。 - 句點后跟星號(“
.*”)。此通配符匹配零個或多個字符的任意序列。
由于在從 XML 讀取字符串時(在將其解析為模式之前)將“
\”用作轉義字符,因此您需要進行雙重轉義。例如,字面量“*”將編寫為“\\*”,字面量“\”將編寫為“\\”。這基本上與采用 Java 代碼構造字符串時需要編寫的內容一樣。如需詳細了解這些類型的模式,請參閱 PatternMatcher 類中的 PATTERN_LITERAL、PATTERN_PREFIX 和 PATTERN_SIMPLE_GLOB 的說明。
- 星號(“
android:permission- 客戶端要讀取或寫入內容提供程序的數據而必須具備的權限的名稱。您可以使用此屬性來方便地設置適用于讀取和寫入的單項權限。不過,
readPermission和writePermission屬性優先于此屬性。 android:readPermission- 客戶端要查詢內容提供程序而必須具備的權限。
android:writePermission- 客戶端要對由內容提供程序控制的數據進行更改而必須具備的權限。
<permission>
- 語法:
-
<permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | ...] /> - 包含于:
<manifest>- 說明:
- 聲明可用于限制對此應用或其他應用的特定組件或功能的訪問權限的安全權限。如需詳細了解權限的工作原理,請參閱簡介中的權限部分以及安全與權限文檔。
- 屬性:
android:description- 權限的用戶可讀說明,比標簽更長,信息更豐富。該說明可能會顯示以向用戶說明權限 - 例如,當系統詢問用戶是否向其他應用授予權限時。
此屬性必須設置為對字符串資源的引用;與
label屬性不同,它不能是原始字符串。 android:icon- 對表示權限的圖標的可繪制資源的引用。
android:label- 可向用戶顯示的權限的名稱。
為方便起見,您可以在開發應用時將此標簽直接設置為原始字符串。不過,當準備好發布應用時,應將標簽設置為對字符串資源的引用,以便可以像界面中的其他字符串一樣進行本地化。
android:name- 權限的名稱。這是將在代碼中(例如,在
<uses-permission>元素和應用組件的permission屬性中)用于引用權限的名稱。注意:系統不允許多個軟件包聲明具有相同名稱的權限,除非所有軟件包都使用相同的證書進行簽名。如果某個軟件包聲明了一個權限,則系統不允許用戶安裝具有相同權限名稱的其他軟件包,除非這些軟件包使用與第一個軟件包相同的證書進行簽名。為了避免命名沖突,我們建議為自定義權限使用反向域式命名,例如
com.example.myapp.ENGAGE_HYPERSPACE。 android:permissionGroup- 將此權限分配給一個組。此屬性的值是該組的名稱,必須使用此應用或其他應用中的
<permission-group>元素聲明。如果未設置此屬性,則此權限不會屬于某個組。 android:protectionLevel-
說明權限中隱含的潛在風險,并指示系統在確定是否將權限授予請求授權的應用時應遵循的流程。
每個保護級別都包含基本權限類型以及零個或多個標記。例如,
"dangerous"保護級別沒有標記。相反,保護級別"signature|privileged"是"signature"基本權限類型和"privileged"標記的組合。下表列出了所有基本權限類型。如需查看標記列表,請參閱
protectionLevel。值 含義 “ normal”默認值。具有較低風險的權限,此類權限允許請求授權的應用訪問隔離的應用級功能,對其他應用、系統或用戶的風險非常小。系統會自動向在安裝時請求授權的應用授予此類權限,無需征得用戶的明確許可(但用戶始終可以選擇在安裝之前查看這些權限)。 “ dangerous”具有較高風險的權限,此類權限允許請求授權的應用訪問用戶私人數據或獲取可對用戶造成不利影響的設備控制權。由于此類權限會帶來潛在風險,因此系統可能不會自動向請求授權的應用授予此類權限。例如,應用請求的任何危險權限都可能會向用戶顯示并且獲得確認才會繼續執行操作,或者系統會采取一些其他方法來避免用戶自動允許使用此類功能。 “ signature”只有在請求授權的應用使用與聲明權限的應用相同的證書進行簽名時系統才會授予的權限。如果證書匹配,則系統會在不通知用戶或征得用戶明確許可的情況下自動授予權限。 “ signatureOrSystem”"signature|privileged"的舊同義詞。在 API 級別 23 中已棄用。系統僅向位于 Android 系統映像的專用文件夾中的應用或使用與聲明權限的應用相同的證書進行簽名的應用授予的權限。不要使用此選項,因為
signature保護級別應足以滿足大多數需求,無論應用安裝在何處,該保護級別都能正常發揮作用。“signatureOrSystem”權限適用于以下特殊情況:多個供應商將應用內置到一個系統映像中,并且需要明確共享特定功能,因為這些功能是一起構建的。
<permission-group>
- 語法:
-
<permission-group android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" /> - 包含于:
<manifest>- 說明:
- 聲明相關權限的邏輯分組的名稱。各個權限通過
<permission>元素的permissionGroup屬性加入權限組中。權限組中的成員一起顯示在界面中。請注意,此元素并不聲明權限本身,而只聲明可以放置權限的類別。如需了解如何聲明權限以及將權限分配到權限組中,請參閱
<permission>元素。 - 屬性:
android:description- 描述權限組的用戶可讀文本。文本應比標簽更長且更具說明性。此屬性必須設置為對字符串資源的引用。與
label屬性不同,它不能是原始字符串。 android:icon- 表示權限的圖標。此屬性必須設置為對包含圖片定義的可繪制資源的引用。
android:label- 權限組的用戶可讀名稱。為方便起見,您可以在開發應用時將此標簽直接設置為原始字符串。 不過,當準備好發布應用時,應將標簽設置為對字符串資源的引用,以便可以像界面中的其他字符串一樣進行本地化。
android:name- 權限組的名稱。這是可以分配給
<permission>元素的<permissionGroup>屬性的名稱。
<permission-tree>
- 語法:
-
<permission-tree android:icon="drawable resource" android:label="string resource" ] android:name="string" /> - 包含于:
<manifest>- 說明:
- 聲明權限樹的基名。應用擁有樹中所有名稱的所有權。它可以通過調用
PackageManager.addPermission()動態地向樹中添加新權限。樹中的名稱由句點(“.”)分隔。例如,如果基名為com.example.project.taxes,則可能會添加如下權限:com.example.project.taxes.CALCULATEcom.example.project.taxes.deductions.MAKE_SOME_UPcom.example.project.taxes.deductions.EXAGGERATE請注意,此元素并不聲明權限本身,而只聲明可將更多權限放入其中的命名空間。如需了解如何聲明權限,請參閱
<permission>元素。 - 屬性:

浙公網安備 33010602011771號