开源软件|Android 中的权限

开源软件|Android 中的权限

文章图片

开源软件|Android 中的权限

【开源软件|Android 中的权限】应用权限有助于保护对以下数据的访问和对以下操作的执行 , 从而为保护用户隐私提供支持:

  • 受限数据 , 例如系统状态和用户的联系信息 。
  • 受限操作 , 例如连接到已配对的设备并录制音频 。
本页将概要介绍 Android 权限的工作原理 , 包括使用权限的概要工作流、对不同类型权限的说明 , 以及在应用中使用权限的一些最佳做法 。 其他页面将介绍如何评估应用是否需要请求权限、声明权限、请求运行时权限 , 以及限制其他应用与应用组件交互的方式 。
如需查看 Android 应用权限的完整列表 , 请访问权限 API 参考文档页面 。
如需查看演示权限工作流的一些示例应用 , 请访问 GitHub 上的 Android 权限示例代码库 。
使用权限的工作流如果您的应用提供的功能可能需要访问受限数据或执行受限操作 , 请确定您是否无需声明权限即可获取相关信息或执行相关操作 。 您可以在您的应用中实现很多用例(例如拍照、暂停媒体播放和展示相关广告)而无需声明任何权限 。
如果您确定您的应用必须访问受限数据或执行受限操作才能实现某个用例 , 请声明相应的权限 。 有些权限是用户安装应用时自动授予的权限 , 称为安装时权限 。 其他权限则需要应用在运行时进一步请求权限 , 此类权限称为运行时权限 。
图 1 显示了使用应用权限的工作流:



图 1. 在 Android 中使用权限的概要工作流示意图 。
权限类型Android 将权限分为不同的类型 , 包括安装时权限、运行时权限和特殊权限 。 每种权限类型都指明了当系统授予应用该权限后 , 应用可以访问的受限数据范围以及应用可以执行的受限操作范围 。
安装时权限


图 2. 某应用商店中显示的某个应用的安装时权限列表 。 安装时权限授予应用对受限数据的受限访问权限 , 并允许应用执行对系统或其他应用只有最低影响的受限操作 。 如果您在应用中声明了安装时权限 , 系统会在用户安装您的应用时自动授予应用相应权限 。 应用商店会在用户查看应用详情页面时向其显示安装时权限通知 , 如图 2 所示 。
Android 提供多个安装时权限子类型 , 包括普通权限和签名权限 。
普通权限此类权限允许访问超出应用沙盒的数据和执行超出应用沙盒的操作 。 但是 , 这些数据和操作对用户隐私及对其他应用的操作带来的风险非常小 。
系统会为普通权限分配“normal”保护级别 , 如权限 API 参考文档页面中所示 。
签名权限当应用声明了其他应用已定义的签名权限时 , 如果两个应用使用同一证书进行签名 , 系统会在安装时向前者授予该权限 。 否则 , 系统无法向前者授予该权限 。
注意:有些签名权限不适合第三方应用使用 。 系统会为签名权限分配“signature”保护级别 , 如权限 API 参考文档页面中所示 。
运行时权限


图 3. 当应用请求运行时权限时显示的系统权限提示 。 运行时权限也称为危险权限 , 此类权限授予应用对受限数据的额外访问权限 , 并允许应用执行对系统和其他应用具有更严重影响的受限操作 。 因此 , 您需要先在应用中请求运行时权限 , 然后才能访问受限数据或执行受限操作 。 当应用请求运行时权限时 , 系统会显示运行时权限提示 , 如图 3 所示 。

相关经验推荐