Android开发-API指南-<permission>
<permission>
英文原文:http://developer.android.com/guide/topics/manifest/permission-element.html
采集(更新)日期:2014-5-16
搬迁自原博客:http://blog.sina.com.cn/s/blog_48d491300100zmuy.html
- 语法:
-
<permission android:description="string resource" android:icon="drawable resource" android:label="string resource" android:name="string" android:permissionGroup="string" android:protectionLevel=["normal" | "dangerous" | "signature" | "signatureOrSystem"] />
- 包含于:
<manifest>
- 说明:
- 声明一个安全权限,用于限制对某些组件或功能的访问,可以是本应用程序的,也可以是其他应用程序的。 关于权限如何生效的更多信息,请参阅 manifest 介绍文档中的 Permissions 部分和 安全及权限 文档。
- 属性:
-
android:description
- 可供用户阅读的权限说明,它比标题更长些,信息也更多。 它可以向用户显示对权限的解释 — 比如在向用户询问是否可以授权给其他应用程序的时候。
本属性必须设为一个指向字符串资源的引用;与
label
属性不同,不能直接赋值为字符串。 -
android:icon
- 对绘图(drawable)资源的引用,用作本权限的图标。
-
android:label
- 权限的名称,可用于向用户显示。
在开发应用程序时,出于方便起见,本标题可以直接赋值为字符串。 但当应用程序准备发布时,本属性应该设为对字符串资源的引用,以便于像其它用户界面的字符串一样进行本地化。
-
android:name
- 权限的名称。代码引用本权限时就要使用本名称 — 比如
<uses-permission>
元素中和应用程序组件的permission
属性。本名称必须唯一,因此应该使用 Java 风格的命名限定方式 — 比如 "
com.example.project.PERMITTED_ACTION
"。 -
android:permissionGroup
- 将本权限归为某个权限组。属性值是组的名称,必须由本应用程序或其他应用程序的
<permission-group>
元素声明的。如果未设置本属性,则本权限不属于任何一个组。 -
android:protectionLevel
- 描述了本权限隐含的潜在风险,并说明在确认是否赋予所需权限时系统将会进行的操作:
值 含义 " normal
"默认值。低风险权限,授权访问那些应用程序级的特性,对于其他应用程序、系统或者用户而言风险最小。 系统会在安装应用程序时,对此类请求自动授权,不会要求用户给出明确的同意(当然用户在安装以前肯定是有机会查看这些权限的)。 " dangerous
"高风险权限,授权访问用户隐私数据,或者对设备的操作可能会对用户造成负面影响。 因为这类权限会引入潜在的风险,系统可能不会向应用程序自动授权。 比如,所有危险的权限都可能会显示出来并在生效之前要求用户确认,或者采取其他方式以避免用户自动许可这类操作。 " signature
"仅当应用程序的数字签名与声明此权限的应用程序相同时,系统才会授权。 如果签名一致,系统将自动授权,不会再通知用户或要求用户明确同意。 " signatureOrSystem
"仅当多个应用程序位于同一个 Android 系统镜像内,或者这些应用程序的数字签名与声明此权限的应用程序相同,系统才会授权。 请尽量避免使用本类权限,因为 signature
级别的保护应该可以满足大部分需求,不管应用程序是安装在什么位置。 “signatureOrSystem
”权限用于某些特殊场合,如有多家厂商的应用程序需要一起编译进一个系统镜像,并且要共用某些特性。
-
- 引入自:
- API 级别 1
- 参阅:
-
<uses-permission>
<permission-tree>
<permission-group>