隐私保护最佳实践

Android 致力于帮助用户充分利用最新的创新技术,同时将用户的安全和隐私视为第一要务。

本页面中介绍的一些最佳实践也会显示在备忘单中。

注意权限

确保公开透明并让用户自主控制应用的使用体验,从而赢得用户信任。

  • 根据实现应用功能的具体需要,请求授予最基本的权限。每当对应用进行重大更改时都应审核请求的权限,确认应用的功能仍然需要这些权限。

    • 请注意,较高版本的 Android 往往会引入注重隐私保护的方法来访问数据,这些方法不需要权限。 如需了解详情,请参阅评估应用是否需要声明权限
    • 如果您的应用是在 Google Play 上分发的,Android Vitals 会显示拒绝将所请求的权限授予应用的用户所占的百分比。请使用此数据找出所需权限最常被拒绝的功能,并重新评估其设计。
  • 按照建议的流程说明应用中的功能为何需要某项权限。仅在需要时(而不是在应用启动时)请求权限,以便用户清楚地了解您的应用需要的权限。

  • 请注意,用户或系统可能会多次拒绝该权限。Android 会尊重用户的选择,忽略来自同一应用的权限请求。

  • 当用户拒绝或撤消某项权限时,您可以对用户可使用的功能进行适当降级。例如,如果用户未授予麦克风使用权限,您可以停用应用的语音输入功能。

  • 更新应用时,请撤消应用不再需要的任何运行时权限

  • 如果您使用的 SDK 或库会访问受危险权限保护的数据,用户通常会认为是您的应用需要相应的访问权限。请确保您了解您所用的 SDK 所需的权限及其原因。

    • 如果您在 Android 11(API 级别 30)上测试应用,请使用数据访问审核来找出您的代码和第三方库代码中的哪些位置会访问私有数据。

尽量减少使用位置信息

如果您的应用可以在不请求访问任何位置数据的情况下实现其用途,请勿请求位置信息权限。如果您的应用请求授予访问位置信息的权限,请帮助用户在充分掌握信息的情况下做出明智的决定。

  • 如果您的应用需要收集位置信息,请向用户说明应用会如何利用这些信息为用户带来特定的好处。
  • 如果您的应用需要通过蓝牙或 Wi-Fi 将用户的设备与附近的设备配对,请使用不需要位置信息权限的配套设备管理器
  • 检查您的应用所需的位置信息精细度级别。粗略位置信息访问权限足以满足大多数与位置相关的用途。
  • 在用户进入应用界面时访问位置数据。这样,用户就能更好地了解您的应用为何请求获取位置信息。
  • 如果您的应用需要在后台访问位置信息(例如在实现地理围栏时),请确保这种访问对使用应用的核心功能起到至关重要的作用,并且采用一种对用户而言显而易见的方式来完成。详细了解使用后台位置信息的注意事项
  • 在 Android 10(API 级别 29)及更高版本中,用户可以限制应用仅在使用时才能访问位置信息。请将您的应用设计为在用户未授予“始终允许”访问位置信息的权限时,以适当的方式进行功能降级。
  • 如果在用户离开应用界面后,应用需要继续访问位置信息才能执行用户启动的持续性任务,请在应用进入后台之前启动前台服务。您可以在 Android 的某个生命周期回调(例如 onPause())中执行此操作。
  • 请勿在后台启动前台服务。您应考虑从通知中启动应用,然后在应用界面变为可见时执行需要访问位置信息的代码。

用安全的方式处理数据

注意:您可以在 Google Play 开发者政策中心的用户数据文章页面详细了解什么是敏感数据。

用透明、安全的方式处理敏感数据。

Jetpack 提供了多个库来提升应用数据的安全性。如需详细了解如何使用 Jetpack Security 库Jetpack Preferences 库,请参阅相关指南。

使用可重置的标识符

尊重用户的隐私权并使用可重置的标识符。如需了解详情,请参阅唯一标识符最佳实践