AndroidMainfest.xml详解——<permission>

来源:互联网 发布:漂亮老婆 知乎 编辑:程序博客网 时间:2024/06/15 09:11

语法:

<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

1 0