AndroidManifest.xml文件詳解(grant-uri-permission)

語法(SYNTAX):

<grant-uri-permissionandroid:path="string"
                      android:pathPattern="string"
                      android:pathPrefix="string"/>

被包含於(CONTAINED IN)

<provider>

說明(DESCRIPTION):

這個元素用於給內容提供器的數據子集授權。數據子集是由content:URI的路徑部分來標識的。授權是提供器給客戶端提供的一種能力,這樣客戶就可以訪問通常沒有權限訪問的數據,從而克服基於單次訪問的限制。

如果內容提供器的grantUriPermissions屬性被設置為true,那麼權限能夠被授予內容提供器范圍內的任何數據。但是,如果grantUriPermission屬性被設置為false,那麼權限就隻能授予這個元素所指定的數據子集。一個內容提供器能夠包含任意多個個<grant-uri-permission>元素。每個都隻能指定一個路徑(三個可能屬性中的一個)。

有關如何授權的更多信息,請看<intet-filter>元素的grantUriPermissions屬性。

屬性(ATTRIBUTES):

android:path

android:pathprefix

android:pathPattern

一個路徑標識瞭能夠被授權的一個或多個數據子集。path屬性指定瞭一個完整的路徑,權限隻能被授予這個路徑所標識的具體的數據子集。pathPrefix屬性指定瞭路徑的初始部分,權限能夠被授予共享這個初始路徑的所有數據子集。pathPattern屬性指定瞭一個完整的路徑,但是這個路徑中包含瞭通配符:

1. 星號(*)通配符,路徑中的*星號代表任意多個星號之前的那個字符,如a*,可跟a、aa、aaa、aaaa、…字符串匹配。

2. 點跟星號的組合(.*)通配符,它可以跟任意字符串進行匹配,如.*html,可以跟abchhtml、chtml、html、dssf.html、…等字符串匹配。

因為系統讀取XML中的字符串時,會把’\’符號作為強制轉義字符,因此就需要兩次轉義。例如,符號”*”要被寫成”\\*”,符號’\’要被寫成”\\\\”。這與Java代碼中的寫法基本相同。

有關這三種模式的更多信息,請看PatternMatcher類中的PATTERN_LITERAL、PATTERN_PREFIX、PATTERN_SIMPLE_GLOB的說明。

http://developer.android.com/reference/android/os/PatternMatcher.html

引入版本(INTRODUCED IN)

API Level 1。

 

摘自 FireOfStar的專欄

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *