添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

A 64-bit number (as a hex string) that is randomly generated when the user first sets up the device and should remain constant for the lifetime of the user’s device. The value may change if a factory reset is performed on the device.

String ANDROID_ID in Settings.Secure—Android Developers

在运行有 Android 4.2 或更高版本的某些设备上可以创建多用户,每个用户都相当于拥有一个独立的设备,因而每个用户的 ANDROID_ID 也是不同的。

获取 Android ID

获取 Android ID 的方法有很多种,如果你是 Android 开发者,自然不必多说;或者可以在 Google Play 上下载相关的 app 同样可以获取到 Android ID,然而作为用户,很难得知下载的 app 除了获取 Android ID 还会获取什么其他的信息,又是如何来使用这些信息的。因而最简单也是最安全的方法就是通过 ADB Shell 1 自行查询。

如何安装和使用 ADB Shell 这里不再赘述。你只需要在连接 Android 设备并且在 Developer options 中允许 USB debugging 后使用以下的命令行查询 Android ID。

adb shell settings get secure android_id

或者查询 Settings 的 content provider 的值。

adb shell content query --uri content://settings/secure/android_id --projection value

使用以上两个命令中所获得的结果就像以下图示。(在这里我的设备的 Android ID 已被隐藏。)

Android 标识符的使用原则

最重要地,如果你是 Android 开发者,那么请仔细阅读 Android Developers 提供的 唯一标识符最佳做法 的文档,请尽可能地使用广告 ID2、实例 ID 和 GUID3 替代使用 Android ID 或 MAC 地址4

根据 Android 开发指南,建议在使用 Android 标识符时遵循以下原则:

原则 1:避免使用硬件标识符。 您可以在大多数用例中避免使用 SSAID(Android ID)和 IMEI 等硬件标识符,而必需功能也不会受到限制。

原则 2:只为用户分析或广告用例使用广告 ID。 使用 广告 ID 时,务必遵守限制广告追踪标记,确保标识符无法与个人可识别信息(PII)建立关联,并避免桥接广告 ID 重置。

原则 3:尽一切可能为防欺诈支付和电话以外的所有其他用例使用实例 ID 或私密存储的 GUID。 对于绝大多数非广告用例,使用实例 ID 或 GUID 应该足矣。

原则 4:使用适合您的用例的 API 以尽量降低隐私权风险。 为高价值内容保护使用 DRM API,为滥用预防使用 SafetyNet API。Safetynet API 是能够确定设备真伪而又不会招致隐私权风险的最简单方法。

Android 调试桥(adb)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问:https://developer.android.com/studio/command-line/adb.html?hl=zh-cn 

广告 ID 是一种可由用户重置的标识符,适用于广告用例。 

标识运行在设备上的应用实例最简单明了的方法就是使用实例 ID,在大多数非广告用例中,这是建议的解决方案。只有进行了针对性配置的应用实例才能访问该标识符,并且标识符重置起来(相对)容易,因为它只存在于应用的安装期。 

从 Android M 开始,无法再通过第三方 API 获得 本地设备 MAC 地址(例如,WLAN 和蓝牙)。