AndroidQ(七)Android Q 隐私权:数据和标识符变更

本文档介绍了对访问数据和系统标识符施加的几项限制。这些变更有助于保护用户的隐私。

其中一些变更会影响在 Android Q 上运行的所有应用,而其他变更仅会影响以 Android Q 为目标平台的应用。

影响所有应用的变更

以下变更会影响在 Android Q 上运行的所有应用,即使这些应用以 Android 9(API 级别 28)或更低版本为目标平台也是如此。

联系人亲密程度

从 Android Q 开始,平台不再跟踪联系人亲密程度信息。因此,如果您的应用对用户的联系人进行搜索,则系统将不再按互动频率对搜索结果排序。

联系人提供程序指南包含一项描述特定字段和方法的声明(从 Android Q 开始,这些字段和方法在所有设备上已作废)。

随机选择的 MAC 地址

默认情况下,搭载 Android Q 的设备会传输随机选择的 MAC 地址。如果您的应用处理企业用例,平台会提供几个新的 API:

  • 获取随机选择的 MAC 地址:设备所有者应用和个人资料所有者应用可以通过调用 WifiConfiguration.getRandomizedMacAddress() 检索分配给特定网络的随机选择 MAC 地址。
  • 获取实际的出厂 MAC 地址:设备所有者应用可以通过调用 WifiInfo.getFactoryMacAddress() 检索设备的实际硬件 MAC 地址。此方法对于跟踪设备队列非常有用。

访问 /proc/net 文件系统

Android Q 撤消了 /proc/net 访问权限,其中包含有关设备网络状态的信息。需要访问此信息的应用(如 VPN)应引用 NetworkStatsManager 和 ConnectivityManager 类。

不可重置的设备标识符

从 Android Q 开始,应用必须具有 READ_PRIVILEGED_PHONE_STATE 签名权限才能访问设备的不可重置标识符(包含 IMEI 和序列号)。许多用例不需要不可重置的设备标识符。如果您的应用没有该权限,但您仍尝试查询标识符的相关信息,则平台的响应会因目标 SDK 版本而异:

  • 如果应用以 Android Q 为目标平台,则会发生 SecurityException。
  • 如果应用以 Android 9(API 级别 28)或更低版本为目标平台,则相应方法会返回 null 或占位符数据(如果应用具有 READ_PHONE_STATE 权限)。否则,会发生 SecurityException。

注意:如果您的应用是设备或个人资料所有者应用,则您只需要 READ_PHONE_STATE 权限即可访问不可重置的设备标识符(即使该应用以 Android Q 为目标平台,也是如此)。此外,如果您的应用具有特殊运营商权限,则您不需要任何权限即可访问这些标识符。

如果您的应用将不可重置的设备标识符用于广告跟踪或用户分析目的,请为这些特定用例创建 Android 广告 ID。要了解详情,请参阅唯一标识符的最佳做法。

访问剪贴板数据

除非您的应用是默认输入法 (IME) 或是目前处于焦点的应用,否则应用无法访问剪贴板数据。

影响以 Android Q 为目标平台的应用的变更

以下变更仅会影响以 Android Q 为目标平台的应用。

访问 USB 串行设备需要用户授予权限

如果您的应用以 Android Q 为目标平台,则该应用只能在用户授予其访问 USB 设备或配件的权限后才能读取序列号。

你可能感兴趣的:(android,版本更新)