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>
原文地址:https://www.cnblogs.com/popapa/p/android_permission-element.html