`
810364804
  • 浏览: 846688 次
文章分类
社区版块
存档分类
最新评论

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桌面部件待办清单

    为了让Widget在添加到主屏幕后自动更新,需要在`AndroidManifest.xml`中设置`&lt;appwidget-provider&gt;`标签的`updatePeriodMillis`属性。不过,考虑到电池效率,不建议频繁自动更新,而应使用`AlarmManager`或`Job...

    android内容提供器详解

    ContentProvider 是一个抽象类,需要在应用程序的清单文件中使用 `&lt;provider&gt;` 元素来定义。Android 系统会从这个元素中获取以下信息:授权、提供器类名、权限等。 授权 授权(android:authorities)是系统中标识...

    android 中文开发指南

    清单文件遵循XML格式,包含多个标签,如`&lt;application&gt;`、`&lt;activity&gt;`等。这些标签用于定义应用的各个方面。 ##### 文件特性(File Features) `AndroidManifest.xml`文件不仅可以描述应用的基本信息,还可以声明...

    Android编程指南(中文)

    #### 七、清单文件 - The AndroidManifest.xml File **1. 清单文件结构 - Structure of the Manifest File** - **元素结构**: AndroidManifest.xml 文件包含了一系列的元素,用于描述应用程序的基本信息和所有组件...

    Android开发基础习题

    这个文件包含了所有必要的代码、资源文件以及应用程序清单文件(AndroidManifest.xml)等,是Android应用程序的可执行文件格式。用户可以通过安装这个文件来使用开发者创建的应用程序。 3. **Android中常见的五种布局...

    Android 常用开发术语

    意图过滤器是Activity、服务或广播接收器在其清单文件中声明的,用于指定它们可以响应哪些类型的Intent。过滤器定义了一组匹配规则,如特定的动作、数据类型或MIME类型,帮助系统确定哪个组件最适合处理特定Intent。...

    androidmanifest.xml文件详解

    - **xmlns:android**: 定义 Android 命名空间,这是 Android 属性的标准前缀,用于识别所有 Android 相关的属性。 - **package**: 指定应用的 Java 主程序包名,同时也是应用的默认进程名称。 - **android:...

    这是 android中文API

    10. **AndroidManifest.xml**:每个Android应用都包含一个清单文件,它定义了应用的基本属性,如应用名称、所需权限、使用的组件等。 11. **Android Studio**:作为官方IDE,Android Studio提供了代码编辑、调试、...

    Android_术语

    **Intent 过滤器** 是 Activity 和广播接收器在其清单文件中定义的一种模式,用于描述它们可以响应的 Intent 类型。过滤器定义了 Intent 必须满足的一系列条件,如动作、数据类型和 MIME 类型等。 #### 十四、...

    安卓Widget小组件相关-androidWidget小组件开发.zip

    - 不要忘记在清单文件中声明BroadcastReceiver权限。 6. **Widget配置活动(Optional)** - 可选地,你可以为Widget创建一个配置活动,让用户自定义Widget的设置,如颜色、大小等。 7. **处理用户交互** - 当...

    Android 中Manifest.xml文件详解

    1. application节点:它是每一个清单文件中唯一的,用于指定应用程序的各种元数据(包括标题、图标和主题)。它还可以作为一个包含了活动、服务、内容提供器和广播接收器标签的容器,用来指定应用程序组件。 2. ...

    Android开发指南中文版-----应用程序框架

    #### 十六、清单文件(The AndroidManifest.xml File) `AndroidManifest.xml`文件是应用的核心配置文件,它包含了应用的各种元数据。 ##### 清单文件结构 该文件定义了应用的基本信息,如包名、权限、Activity、...

    浅谈Android Content Provider的使用

    Content Provider通过在应用的清单文件(AndroidManifest.xml)中声明,并在`&lt;application&gt;`节点下配置,确保其对外可见性。例如: ```xml &lt;provider android:name=".PersonProvider" android:authorities=...

    android 安卓 中文手册 API

    - **清单文件结构 Structure of the Manifest File**:`AndroidManifest.xml`通常包含`&lt;manifest&gt;`、`&lt;application&gt;`、`&lt;activity&gt;`等标签。这些标签定义了应用程序的基本属性和组件的信息。 - **文件约定 File ...

    Android开发指南中文版

    - **清单文件结构**: 定义了应用程序的所有组件及其属性。 - **文件约定**: 规定了文件的命名和组织方式。 - **文件特性**: 描述了应用程序的主要特征,如所需的权限、支持的屏幕尺寸等。 #### 进程和线程 - **...

    Android学习大纲

    7. `AndroidManifest.xml`:项目清单文件,定义了应用的基本信息、权限、组件等。 8. `default.properties`:项目环境信息文件,记录项目的构建属性,现在已被gradle的build.gradle文件替代。 二、UI布局 1. 线性...

    Android手机平台音乐播放器毕业论文

    - 四大组件:Activity、Service、Broadcast Receiver、Content Provider,构成Android应用的基础架构。 4.2 搭建Android开发环境:安装Android Studio,配置SDK,设置模拟器或连接真实设备。 4.3 Android常用工具:...

    android中文手册

    手册会详细介绍如何在清单文件中声明权限,以及在运行时请求权限的机制。 10. **Android组件交互**:手册会讲解四大组件(活动、服务、广播接收器、内容提供者)之间的通信方式,以及如何使用意图实现组件间的协作...

    Android高级编程--源代码

    在每章的讲解中,它会让你通过一系列示例项目逐步掌握Android中的各种新功能和技术,助你取得最圆满的学习效果。本书所介绍的各个应用实例简明扼要且极具实用价值,它们覆盖了Android 1.0的所有基本功能和高级功能...

Global site tag (gtag.js) - Google Analytics