您的位置:首页 > 移动开发 > Android开发

AndroidMainfest.xml详解——<permission>

2017-01-11 13:30 337 查看
语法:

<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

描述了本权限隐含的潜在风险,并说明在确认是否赋予所需权限时系统将会进行的操作:

(1)”normal” 默认值。低风险权限,授权访问那些应用程序级的特性,对于其他应用程序、系统或者用户而言风险最小。系统会在安装应用程序时,对此类请求自动授权,不会要求用户给出明确的同意(当然用户在安装以前肯定是有机会查看这些权限的)。

(2)”dangerous” 高风险权限,授权访问用户隐私数据,或者对设备的操作可能会对用户造成负面影响。因为这类权限会引入潜在的风险,系统可能不会向应用程序自动授权。比如,所有危险的权限都可能会显示出来并在生效之前要求用户确认,或者采取其他方式以避免用户自动许可这类操作。

(3)”signature” 仅当应用程序的数字签名与声明此权限的应用程序相同时,系统才会授权。如果签名一致,系统将自动授权,不会再通知用户或要求用户明确同意。

(4)”signatureOrSystem” 仅当多个应用程序位于同一个 Android 系统镜像内,或者这些应用程序的数字签名与声明此权限的应用程序相同,系统才会授权。请尽量避免使用本类权限,因为signature级别的保护应该可以满足大部分需求,不管应用程序是安装在什么位置。 “signatureOrSystem”权限用于某些特殊场合,如有多家厂商的应用程序需要一起编译进一个系统镜像,并且要共用某些特性。

英文地址:https://developer.android.com/guide/topics/manifest/permission-element.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: