1. 程式人生 > >Android清單檔案中相關屬性含義(Provider)

Android清單檔案中相關屬性含義(Provider)

語法(SYNTAX):

<providerandroid:authorities="list"android:enabled=["true" | "false"]
         
android:
exported=["true" | "false"]
         
android:
grantUriPermissions=["true" | "false"]
         
android:
icon="drawable resource"android:initOrder="integer"android:label="string resource"android:

multiprocess=["true" | "false"]
         
android:
name="string"android:permission="string"android:process="string"android:readPermission="string"android:syncable=["true" | "false"]
         
android:
writePermission="string">
    . . .
</provider>


屬性(ATTRIBUTES):

android:authorities

標識內容提供器範圍內的資料URI的授權列表,有多個授權時,要用分號來分離每個授權。為了避免衝突,授權名應該使用Java樣式的命名規則(如:com.example.provider.cartoonprovider)。通常,用ContentProvider子類名稱來設定這個屬性。

這個屬性沒有預設值,至少要指定一個授權。

android:exported

這個屬性用於指定該內容提供器是否能夠被其他的應用程式元件使用。如果設定為true,則可以被使用,否則不能被使用。如果設定為false,該提供器只對同名的應用程式或有相同使用者ID的應用程式有效。預設值是true。

雖然能夠使用這個屬性來公開內容提供器,但是依然還要用permission屬性來限制對它的訪問。

android:grantUriPermission

這個屬性用於設定那些對內容提供的資料沒有訪問許可權的訪問者,是否能夠被授予訪問的許可權,這個許可權是臨時性的,它會克服由readPermission、writePermission和permission屬性的設定限制。如果這個屬性設定為true,那麼許可權就可以授予訪問者,否則不會授予沒有訪問許可權的訪問者。如果設定為true,則許可權可以臨時被授予內容提供器的任何資料。如果設定為false,則許可權只能被授予<gran-uri-permission>子元素中所列出的資料子集。預設值是false。

這種授權是應用程式提供了一種一次性訪問被許可權所保護的資料的方法。例如,當一個e-mail包含了一個附件時,mail應用程式就可以呼叫適當的瀏覽器來開啟附件,即使這個瀏覽器沒有檢視所有內容提供器資料的許可權。

在這樣的場景中,許可權是通過啟用元件的Intent物件中的FLAG_GRANT_READ_URI_PERMISSION和FLAG_GRANT_WRITE_URI_PERMISSION標記來授予的。例如,mail應用程式可以把FLAG_GRANT_READ_URI_PERMISSION標記放到傳遞給Context.startActivity()方法的Intent引數中。這樣許可權就被授予了Intent物件中所指定的URI。

如果要啟用這個功能,既可以通過把這個屬性設定為true來完成,也可以通過定義<grant-uri-permission>子元素來實現,在切換RUI時,必須呼叫Context.revokeUriPermission()方法從提供器把許可權刪除。

android:icon

這個屬性用於定義一個代表內容提供器的圖示。它必須要引用一個包含圖片定義的可繪製資源。如果這個屬性沒有設定,那麼就會使用應用程式的<application>元素的icon屬性值來代替。

android:initOrder

這個屬性用於定義內容提供器應該被例項化的順序,這個順序是相對與相同程序所擁有的其他內容提供器的。當內容提供器間有相互的依賴時,就需要設定這個屬性,以確保它們能夠按照其依賴的順序被建立。這個屬性值是一個簡單的整數,大的數字要被優先初始化。

android:multiprocess

這個屬性用於設定是否能夠在每個使用該內容提供器的客戶端程序中都建立一個內容提供器的例項,如果設定為true,這個能夠在其每個客戶端程序中建立一個例項,否則不可以。預設值是false。

通常,內容提供器是在定義它的應用程式的程序中被例項化的。但是,如果這個屬性被設定為true,系統就能夠在每個要與該內容提供器進行互動的客戶端程序中建立一個內容提供器的例項,這樣就避免了程序間通訊的開銷。

android:permission

這個屬性用於設定客戶端在讀寫內容提供器的資料時必須要有的許可權的名稱。這個屬性為同時設定讀寫許可權提供了一種便利的方法。但是readPermission和writePermission屬性的優先順序要比這個屬性高。如果readPermission屬性也被設定了,那麼它就會控制對內容提供器的查詢訪問。如果writePermission屬性被設定,它就會控制對內容提供器資料的修改訪問。

android:process

這個屬性用於定義內容提供器應該執行在那個程序中的程序名稱。通常,應用程式的所有元件都執行在給應用程式建立的預設程序中。它有與應用程式包相同的名稱。<application>元素的process屬效能夠給其所有的元件設定一個不同的預設程序。但是每個元件都能夠用它們自己的process屬性來覆蓋這個預設設定,從而允許把應用程式分離到不同的多個程序中。

如果這個屬性值是用“:”開頭的,那麼在需要這個提供器的時候,系統就會給這個應用程式建立一個新的私有程序,並且對應的Activity也要執行在那個私有程序中。如果用小寫字母開頭,那麼Activity則會執行在一個用這個屬性值命名的全域性程序中,它提供了對內容提供器的訪問許可權。這樣就允許不同應用程式的元件能夠共享這個程序,從而減少對系統資源的使用。

android:readPermission

這個屬性用於設定查詢內容提供器的資料時,客戶端所必須要有的許可權。

android:syncable

這個屬性用於設定內容提供器控制下的資料是否要與伺服器上的資料進行同步,如果設定為true,則要同步,否則不需要同步。

android:writePermission

這個屬性用於設定修改內容提供器的資料時,客戶端所必須要有的許可權。

相關推薦

Android清單檔案相關屬性含義Provider

語法(SYNTAX): <providerandroid:authorities="list"android:enabled=["true" | "false"]           android:exported=["true" | "false"]    

android--Manifest檔案allowTaskReparenting屬性含義

allowTaskReparenting的官方定義是“Whether or not the activity can move from the task that started it to the task it has an affinity for when that task is next br

Activiti引擎相關含義部分

# 流程定義部署相關的表 SELECT * FROM act_re_deployment  #流程定義部署表 SELECT * FROM act_re_procdef  #流程定義表 SELECT * FROM act_ge_bytearray

echarts相關屬性設定1折線圖篇

option =  { tooltip: { trigger: 'axis', // axisPointer: { // type: 'cross', // label: { // backgroundColor: '#6a7985', //

echarts相關屬性設定2--折線圖和柱狀圖的結合使用

type:bar和line的組合 option = { { tooltip: { trigger: 'axis', axisPointer: { // type: 'shadow' }, // label: { // normal: { //

微信小程式引用同一js檔案的方法函式function

在小程式的js檔案中,有時候我們也要複用同一js的一個或多個方法。如下即可 /** * 生命週期函式–監聽頁面顯示 */ onShow: function (options) { var that=this; that.q

spring事務原理淺析及相關屬性分析

一、事務的基本原理Spring事務的本質其實就是資料庫對事務的支援,沒有資料庫的事務支援,spring是無法提供事務功能的。對於純JDBC操作資料庫,想要用到事務,可以按照以下步驟進行:獲取連線 Connection con = DriverManager.getConnec

Android實際開發實用的第三方開源框架

1.Butterknife 將Android檢視和回撥繫結到欄位和方法 https://github.com/JakeWharton/butterknife 2.Material – dialogs 一個漂亮,流暢且可自定義的對話方塊API https://gith

Android 農曆和節氣相關工具類記錄

中國農曆相關的工具類,可以獲取當前或者規定日期的農曆,節氣,生肖等。 LunarCalender.java package

Android 清單檔案配置防止OOM屬性

 android:largeHeap="true"是最關鍵的 可以檢視 <application android:name="config.MyApplication" android:allowBackup="false" a

Android開發屬性動畫ObjectAnimator 插值器Time Interpolator 詳解

在 Android開發中,為了保持良好的互動體驗,我們經常會用到動畫來提升使用者體驗,而動畫中屬性動畫用的最多。 雖然動畫可以讓介面看起來不是那麼粗糙,但是很多時候僅僅只是勻速運動的動畫可能不足以描述一些我們想呈現給使用者的介面,比如模擬一個下落的小球,我們知道下落的小球並不是以勻速運動的,

Android開發屬性動畫ObjectAnimator的應用

昨天看到一個有意思的動畫,就想用Android 中的屬性動畫(ObjectAnimator)給實現出來,順便複習一下屬性動畫的使用,完成效果如下: 看完了效果,現在該開始動手幹活了~ 首先先分析一下這個動畫用Android 中的屬性動畫該怎麼實現: 看上去這個動畫很簡單,可以用

CNN相關要點介紹——卷積核操作、feature map的含義以及資料是如何被輸入到神經網路

一、卷積核的定義     下圖顯示了CNN中最重要的部分,這部分稱之為卷積核(kernel)或過濾器(filter)或核心(kernel)。因為TensorFlow官方文件中將這個結構稱之為過濾器(filter),故在本文中將統稱這個結構為過濾器。如下圖1所示,

Android佈局檔案控制元件的高度與寬度屬性設定

大家都知道,在Android佈局檔案中控制元件的高度與寬度設定時有三個屬性:fill_parent,match_parent,wrap_content。1. fill-parent:        設定一個構件的佈局為fill_parent將強制性地使構件擴充套件,以填充佈局單元內儘可能多的空間。這跟Wind

安卓開發,功能清單檔案的元素配置含義

從以上示例程式碼中,我們可以看出Android配置檔案採用XML作為描述語言,每個XML標籤都不同的含義,大部分的配置引數都放在標籤的屬性中,下面我們便按照以上配置檔案樣例中的先後順序來學習Android配置檔案中主要元素與標籤的用法。 <manifest>

java web專案的properties檔案屬性值在啟動後進行修改資料庫密碼加密等

public class DecryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer { private Resource[] locations; public void setLocations(

Android】安卓佈局檔案xmlns屬性

定義及使用 xmlns是XML Namespaces的縮寫,中文名稱是XML(標準通用標記語言的子集)名稱空間 自定義View的時候有時候會在佈局檔案中使用到 命名規則如下: xmlns:字首=http://shemas.android.com/ap

Android XML檔案定義動畫的一些屬性

1.在res目錄下新建anim資料夾 2.寫一個xxx.xml 3.在xml中加入一些控制動畫的屬性。        <alpha/>----------透明度變化       <scale/>-----------尺寸伸縮變化     

linux-man命令的編號含義包括系統調用和庫函數講解

linux man 博文說明【前言】: 本文將通過個人口吻介紹linux的man命令中的編號含義(包括系統調用和庫函數解釋),在目前時間點【2017年6月13號】下,所掌握的技術水平有限,可能會存在不少知識理解不夠深入或全面,望大家指出問題共同交流,在後續工作及學習中如發現本文內容與實際情況有所

Android入門之文件系統操作文件操作相關指令

-h tools strong abc his art 為什麽 重命名 path (一)獲取總根 [java] view plain copy File[] fileList=File.listRoots(); //返回fileList.length為1 /