Android API Guides---App Manifest

<provider>

句法

<provider android: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>
包含于

<application>

可以包含:

<meta-data> 
<grant-uri-permission> 
<path-permission>

描述:
声明内容提供商组成部分。内容提供商是提供给应用程序管理的数据结构的访问内容提供商的子类。在应用程序中的所有内容提供商必须在清单文件中的<provider>元素定义;否则,系统也并不知晓,不运行它们。
你只声明是应用程序的一部分内容提供商。在您在应用程序中使用其他应用程序内容提供商不应该声明。
根据权威字符串内容提供商的Android系统存储引用,供应商的内容URI的一部分。例如,假设你要访问存储有关医疗保健专业人员信息的内容提供商。要做到这一点,你调用方法ContentResolver.query(),这是其它参数之间需要一个URI标识提供者:

content://com.example.project.healthcareprovider/nurses/rn
内容:方案标识URI作为内容URI指向一个Android的内容提供商。权威com.example.project.healthcare提供商标识提供者本身; Android系统查找其称为提供商和他们的机构列表的权限。子串护士/ RN是一个路径,内容提供商可以使用它来识别供应商的数据子集。
请注意,当你定义在<provider>元素供应商,你不包括方案或在android的路径:名称参数,只有权威。
有关使用和开发内容提供者的信息,请参阅API指南,内容提供商。
属性:

android:authorities

标识由内容提供商提供的数据的一个或多个URI当局的列表。多个机构通过用分号分隔它们的名字上市。为了避免冲突,权威名称应该使用Java风格的命名约定(如com.example.provider.cartoon提供商)。通常情况下,它的ContentProvider的子类的实现提供者的名称
没有默认值。至少一个权威必须指定

android:enabled

“真”,如果它可以是,和“假”,如果不 - 是否内容提供者可以通过系统被实例化。缺省值是“真”。
在<application>元素有一个适用于所有应用程序组件,包括内容提供商自身的启用属性。在<应用程序>和<提供商>属性必须都是“真”(因为它们都是默认情况下)为要启用的内容提供商。如果任何一个为“假”,供应商被禁用;它不能被实例化。

android:exported

是否内容提供商是可用于其他的应用程序的使用方法:
真:提供可用于其它应用程序。任何应用程序可以使用提供商的内容URI进行访问,受到了供应商指定的权限。
假:该供应商不提供给其他应用程序。设置机器人:出口=“假”来限制访问提供商您的应用程序。只有具有相同用户ID(UID),为提供者应用程序可以访问到它。
默认值是该设置或者Android应用程序“真”:的minSdkVersion为Android:targetSdkVersion为“16”或更低。对于设置这两个属性为“17”或更高的应用程序,默认为“假”。
您可以设置机器人:出口=“假”,仍然与许可属性设置权限限制访问您的供应商

android:grantUriPermissions

不管是不是那些谁通常不会有权限访问内容提供商的数据可以获准这样做,暂时克服了readPermission,writePermission施加的限制,允许属性 - “真”,如果权限可以授予,而“假“如果不是。如果“真”,权限可以授予任何内容提供者的数据。如果“假”,权限只能如有授予在<赠款URI的权限>子元素中列出的数据子集。默认值是“假”。
授予权限给予被许可保护的数据的应用程序组件一次性访问的方式。例如,当一封邮件包含附件,邮件应用程序可以在相应的查看器打开它打电话,即使观众没有看所有内容提供商的数据一般许可。
在这种情况下,许可由FLAG_GRANT_READ_URI_PERMISSION和FLAG_GRANT_READ_URI_PERMISSION标志在激活该组件的意图对象授予。例如,在邮件应用程序可能把FLAG_GRANT_READ_URI_PERMISSION在()传递给Context.startActivity的意图。权限是特定的URI中的意图。
如果启用此功能,通过设置该属性为“true”或者通过定义<赠款URI的权限>子元素,你必须调用Context.revokeUriPermission()当一个URI覆盖从供应商删除。
另请参阅<赠款URI的权限>元素。

android:icon

代表内容提供商的图标。此属性必须设置为包含图像定义的可绘制资源的引用。如果没有设置,对作为一个整体来代替应用程序指定的图标(请参阅<application>元素的图标属性)。

android:initOrder

在该内容提供者应当被实例化的命令,相对于由相同的工艺托管的其他内容提供者。当有内容提供商之间的依赖关系,设置为他们每个人的这一属性,确保它们在这些依赖关系所要求的顺序创建。该值是一个简单的整数,更大的数字首先被初始化。

android:label

对所提供的内容的用户可读的标签。如果没有设置该属性,作为一个整体来代替应用程序的标签集(请参阅<application>元素的label属性)。
标签应设置为一个字符串资源的引用,以便它可以被本地化一样在用户界面的其他串。但是,作为一种方便,而你开发的应用程序,它也可以被设置为一个原始字符串。

android:multiprocess

是否该内容提供者的一个实例可以在每个客户端进程来创建 - “true”表示实例可以在多个进程中运行,而“假”,如果没有。默认值是“假”。
通常,内容提供者在该定义它的应用程序的过程实例。但是,如果该标志被设置为“真”,该系统可以在那里有一个想要与它进行交互,从而避免进程间通信的开销的客户机中创建的每个进程的实例。

android:name

实现该内容提供者,内容提供者的一个子类的类的名字。这应该是一个完全合格的类名(例如,“com.example.project.Transportation提供商”)。但是,作为一个缩写,如果名字的第一个字符是一个时期,它被附加到<清单>元素中指定的包名。
没有默认值。必须指定名称。

android:permission

该客户端必须读或写的内容提供者的数据的许可的名称。该属性是设置一个单个的许可用于读和写两者的方便的方法。然而,readPermission和写入权限属性优先于这一个。如果readPermission属性,也可以设置,它控制用于查询的内容提供商的访问。而如果写权限属性设置,它控制了修改提供商的数据访问。
有关权限的详细信息,请参阅介绍权限部分和一个单独的文件,安全和权限。

android:process

在该内容提供者应该运行的进程的名称。通常情况下,一个应用程序的所有组件在应用程序创建的默认进程中运行。它具有相同的名称作为应用程序包。在<application>元素的process属性可以为所有的组件不同的默认。但每个组件都可以有自己的进程属性覆盖默认设置,让您在多个流程传播你的应用程序。
(“:”)如果分配给该属性名称以冒号开始,一个新的进程,私有的应用程序,在需要时创建和活动在这一过程中运行。如果进程名称以小写字母开头,该活动将在名字的全局进程中运行,只要它有权这样做。这使得在不同应用程序的组件共享一个过程,减少资源的使用。

android:readPermission

客户端必须具有查询内容提供商的权限。又见权限和写入权限属性。

android:syncable

是否内容提供者的控制下的数据是要与一个服务器上的数据同步 - 如果它是要同步“真”和“假”,如果没有。

android:writePermission

该客户端必须进行修改,由内容提供商所控制的数据的权限。又见权限和读权限属性。

你可能感兴趣的:(java,android,api,sdk,阅读)