隐私指南

Android 专注于帮助用户利用最新的创新,同时将他们的安全和隐私作为首要任务。使用本页上的清单作为常见隐私指南和最佳实践的来源。

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

清单:最小化您的权限请求

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

  • 请求您的功能所需的最低权限:在对您的应用进行重大更改时,请查看 请求的权限 以确认您的应用的功能仍然需要它们。
    • 更新的 Android 版本通常引入了以保护隐私的方式访问数据的方法,而无需权限。有关更多信息,请参阅 评估您的应用是否需要声明权限
    • 如果您的应用在 Google Play 上分发,您可以使用 Android Vitals 获取拒绝您应用中的权限的用户百分比。使用此数据重新评估设计需要最常被拒绝的权限的功能。
  • 说明您的应用中的功能为什么需要权限:遵循 推荐流程 这样做。在需要时请求权限,而不是在应用启动时请求权限,以便用户清楚地了解需要权限。
  • 请注意,用户或系统可以多次拒绝权限: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 管理中心的数据安全表格,该表格向用户解释您的应用收集和共享哪些类型用户数据。

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

  • 不要在 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 格式下载。