隐私清单

Android 专注于帮助用户利用最新的创新成果,同时将安全和隐私作为首要任务。 使用此页面上的清单作为常见隐私准则和最佳实践的来源。

此页面上描述的一些最佳实践也出现在备忘单中。

清单:最大限度地减少您的权限请求

通过透明化并为用户提供控制其应用体验的方式来建立用户信任。

  • 请求您的功能所需的最低权限:当对您的应用进行重大更改时,请查看请求的权限,以确认您的应用的功能仍然需要这些权限。
    • 较新的 Android 版本通常会引入以注重隐私的方式访问数据的方法,而无需权限。 有关更多信息,请参阅评估您的应用是否需要声明权限
    • 如果您的应用在 Google Play 上分发,您可以使用Android 指标来获取拒绝您应用中权限的用户百分比。 使用此数据重新评估其所需权限最常被拒绝的功能的设计。
  • 解释您的应用中的功能为什么需要权限:请按照推荐流程执行此操作。 在需要时请求权限,而不是在应用启动时请求,以便用户清楚地了解权限需求。
  • 请注意,用户或系统可以多次拒绝权限:Android 会尊重此用户选择,忽略来自同一应用的权限请求。
  • 在没有权限的情况下优雅地降级:当用户拒绝或撤销权限时,您的应用应优雅地降级——例如,如果用户未授予麦克风权限,则禁用语音输入。
  • 删除对不必要权限的访问:更新应用时,删除其对不再需要的任何运行时权限的访问
  • 了解 SDK 或库所需的权限:如果您使用的是访问受危险权限保护的数据的 SDK 或库,则用户通常将其归因于您的应用。 确保您了解您的 SDK 需要的权限以及原因

清单:最大限度地减少您的位置使用

关于用户位置的数据是敏感的;如果可能,请避免使用位置数据。 如果必须使用位置服务,请采取措施最大限度地减少位置数据的收集。 使用以下清单来最大限度地减少您的应用对位置的使用。

  • 在没有位置数据的情况下优雅地降级:在 Android 10(API 级别 29)及更高版本中,用户可以将您的应用的位置访问权限限制为应用正在使用时。 设计您的应用,使其在没有不间断访问位置权限时能够优雅地降级。
  • 使用附近的蓝牙或 Wi-Fi 设备:如果您的应用需要通过蓝牙或 Wi-Fi 将用户的设备与附近的设备配对,请使用配套设备管理器,它不需要位置权限。 了解有关蓝牙Wi-Fi权限的更多信息。
  • 尽可能使用粗略位置精度:查看您的应用需要的位置粒度级别。 粗略位置访问足以满足大多数与位置相关的用例。
  • 仅在必要时访问后台位置:如果您的应用需要后台位置,例如使用地理围栏,请将其设计为对用户显而易见。 了解有关使用后台位置的注意事项的更多信息。
  • 在您的应用对用户可见时访问位置数据:这可以让用户更好地理解您的应用为何请求位置信息。
  • 不要从后台启动前台服务:考虑从通知启动您的应用,然后在您的应用 UI 可见时执行位置代码。 如果您的应用必须保留位置访问权限以在用户离开您的应用 UI 后支持用户启动的持续任务,则在进入后台之前启动前台服务

清单:安全地处理数据

注意:您可以在 Google Play 开发者政策中心的用户数据文章页面中阅读更多关于哪些数据被视为敏感数据的信息。

在处理敏感数据时要做到透明、安全和彻底。 使用以下清单作为指导,更安全地处理您应用中的用户数据。

  • 审核对数据的访问:在 Android 11(API 级别 30)及更高版本中,执行数据访问审核以深入了解您的应用及其依赖项如何访问用户私有数据,从而更容易识别意外的数据访问。

  • 声明包可见性需求:如果您的应用面向 Android 11 或更高版本,系统默认情况下会使某些应用对您的应用不可见。了解如何使这些其他应用对您的应用可见

  • 支持范围存储:为了赋予用户更多控制权并限制文件杂乱,面向 Android 10(API 等级 29)或更高版本的应用会自动获得对外部存储的范围访问权限,或范围存储。此类应用只能访问其自己的目录和已创建的媒体。了解如何迁移到范围存储

  • 使用用户可重置标识符:为了保护用户的隐私,请使用最严格的标识符来满足您的用例——请参阅本文档中关于可重置标识符的清单

  • 提供醒目的披露和同意:遵循Google Play 用户数据政策最佳实践,向用户提供醒目的披露和同意请求。

  • 声明您的应用的数据使用情况:正确填写 Google Play Console 数据安全表单,向用户解释您的应用收集和共享哪些类型的用户数据。

  • 安全地将敏感数据传递到其他应用:使用显式意图将敏感数据传递到另一个应用。授予一次性数据访问权限,以进一步限制另一个应用的访问权限。

  • 不要在 Logcat 消息或日志文件中包含敏感数据:了解更多

清单:使用可重置标识符

尊重用户的隐私并使用可重置标识符。有关更多信息,请参阅唯一标识符的最佳实践

  • 不要访问 IMEI 或设备序列号:这些标识符是永久性的。如果面向 Android 10(API 等级 29)或更高版本的应用尝试访问这些标识符,则会导致SecurityException

  • 仅将广告 ID 用于用户画像或广告用例:始终尊重用户对广告跟踪进行个性化设置的偏好。重要提示:这是 Google Play 的必备要求。

  • 使用私有存储的 GUID:对于绝大多数非广告用例,使用私有存储的全局唯一 ID (GUID),它是应用范围的。

  • 对于您拥有的应用,使用 SSAID:要在您拥有的应用之间共享状态,而无需用户登录帐户,请使用安全设置 Android ID (SSAID)。了解有关如何在应用之间保存注销用户的首选项的更多信息。

清单:支持面向用户的隐私功能

在处理敏感数据时要做到透明、安全和彻底。请使用以下清单作为指导,以确保您的应用安全地处理用户数据。

  • 提供访问敏感信息的理由:在 Android 12(API 等级 31)或更高版本上,用户可以访问系统设置中的隐私信息中心,以了解与应用访问位置、麦克风和相机信息相关的详细信息。了解有关向用户提供此说明的更多信息。

  • 提示用户禁用应用休眠:如果用户几个月未与面向 Android 11(API 等级 30)或更高版本的应用互动,系统会将该应用置于休眠状态。了解有关应用休眠以及如何请求用户禁用它的信息。

  • 安全地将敏感数据传递到其他应用:如果您需要将敏感数据传递到另一个应用,请使用显式意图授予一次性数据访问权限,以进一步限制另一个应用的访问权限。

  • 直观地指示您的应用正在捕获音频或图像:即使您的应用处于前台,也要显示实时指示器,表明您正在从麦克风或相机捕获内容。注意:Android 9(API 等级 28)或更高版本不允许在您的应用处于后台时访问麦克风或相机

隐私备忘单

隐私备忘单是 Android 中一些最有用的隐私 API 的快速参考,以及您在设计应用时应牢记的最佳实践。

备忘单也可以下载 PDF 格式。