<permission>

语法:
<permission android:description="string resource"
                android:icon="drawable resource"
                android:label="string resource"
                android:name="string"
                android:permissionGroup="string"
                android:protectionLevel=["normal" | "dangerous" |
                                         "signature" | ...] />
包含于:
<manifest>
说明:
声明可用于限制对此应用或其他应用的特定组件或功能的访问权限的安全权限。如需详细了解权限的工作原理,请参阅简介中的权限部分以及安全与权限文档。
属性:
android:description
权限的用户可读说明,比标签更长,信息更丰富。该说明可能会显示以向用户说明权限 - 例如,当系统询问用户是否向其他应用授予权限时。

此属性必须设置为对字符串资源的引用;与 label 属性不同,它不能是原始字符串。

android:icon
对表示权限的图标的可绘制资源的引用。
android:label
可向用户显示的权限的名称。

为方便起见,您可以在开发应用时将此标签直接设置为原始字符串。不过,当准备好发布应用时,应将标签设置为对字符串资源的引用,以便可以像界面中的其他字符串一样进行本地化。

android:name
权限的名称。这是将在代码中(例如,在 <uses-permission> 元素和应用组件的 permission 属性中)用于引用权限的名称。

注意:系统不允许多个软件包声明具有相同名称的权限,除非所有软件包都使用相同的证书进行签名。如果某个软件包声明了一个权限,则系统不允许用户安装具有相同权限名称的其他软件包,除非这些软件包使用与第一个软件包相同的证书进行签名。为了避免命名冲突,我们建议为自定义权限使用反向域式命名,例如 com.example.myapp.ENGAGE_HYPERSPACE

android:permissionGroup
将此权限分配给一个组。此属性的值是该组的名称,必须使用此应用或其他应用中的 <permission-group> 元素声明。如果未设置此属性,则此权限不会属于某个组。
android:protectionLevel

说明权限中隐含的潜在风险,并指示系统在确定是否将权限授予请求授权的应用时应遵循的流程。

每个保护级别都包含基本权限类型以及零个或多个标记。例如,"dangerous" 保护级别没有标记。相反,保护级别 "signature|privileged""signature" 基本权限类型和 "privileged" 标记的组合。

下表列出了所有基本权限类型。如需查看标记列表,请参阅 protectionLevel

含义
normal 默认值。具有较低风险的权限,此类权限允许请求授权的应用访问隔离的应用级功能,对其他应用、系统或用户的风险非常小。系统会自动向在安装时请求授权的应用授予此类权限,无需征得用户的明确许可(但用户始终可以选择在安装之前查看这些权限)。
dangerous 具有较高风险的权限,此类权限允许请求授权的应用访问用户私人数据或获取可对用户造成不利影响的设备控制权。由于此类权限会带来潜在风险,因此系统可能不会自动向请求授权的应用授予此类权限。例如,应用请求的任何危险权限都可能会向用户显示并且获得确认才会继续执行操作,或者系统会采取一些其他方法来避免用户自动允许使用此类功能。
signature 只有在请求授权的应用使用与声明权限的应用相同的证书进行签名时系统才会授予的权限。如果证书匹配,则系统会在不通知用户或征得用户明确许可的情况下自动授予权限。
signatureOrSystem

"signature|privileged" 的旧同义词。在 API 级别 23 中已弃用。

系统仅向位于 Android 系统映像的专用文件夹中的应用或使用与声明权限的应用相同的证书进行签名的应用授予的权限。不要使用此选项,因为 signature 保护级别应足以满足大多数需求,无论应用安装在何处,该保护级别都能正常发挥作用。“signatureOrSystem”权限适用于以下特殊情况:多个供应商将应用内置到一个系统映像中,并且需要明确共享特定功能,因为这些功能是一起构建的。

引入于:
API 级别 1
另请参阅:
<uses-permission>
<permission-tree>
<permission-group>