ANDROID - 获取持久设备标识符(UUID)

leo*_*dev 5 uuid android persistence guid android-identifiers

我需要一个在卸载并重新安装应用程序后仍然存在的设备标识符。我知道 UUID 类为该方法提供了一个标识符

String uniqueID = UUID.randomUUID().toString();
Run Code Online (Sandbox Code Playgroud)

但 Android 指南对其范围和持久性尚不清楚。在下一段它说:

Android 操作系统提供了许多具有不同行为特征的 ID,您应该使用哪个 ID 取决于以下特征如何与您的用例配合使用。但这些特征也伴随着隐私问题,因此了解这些特征如何共同发挥作用非常重要。

范围

标识符范围解释了哪些系统可以访问标识符。Android 标识符范围通常分为三种:

单个应用程序。ID 是应用程序内部的,其他应用程序无法访问。

应用程序组- 一组预定义的相关应用程序可以访问该 ID。

设备- 该 ID 可供设备上安装的所有应用程序访问。授予标识符的范围越广,其被用于跟踪目的的风险就越大。相反,如果标识符只能由单个应用程序实例访问,则它不能用于跨不同应用程序中的事务跟踪设备。

可重置性和持久性

可重置性和持久性定义了标识符的生命周期并解释了如何重置它。常见的重置触发器有:应用内重置、通过系统设置重置、启动时重置和安装时重置。Android 标识符可以有不同的生命周期,但生命周期通常与 ID 的重置方式有关:

仅会话- 每次用户重新启动应用程序时都会使用一个新 ID。

安装-重置- 每次用户卸载和重新安装应用程序时都会使用一个新 ID。

FDR 重置- 每次用户对设备进行出厂重置时都会使用一个新 ID。

FDR 持久性- ID 在出厂重置后仍然有效。

可重置性使用户能够创建与任何现有配置文件信息无关的新 ID。这很重要,因为标识符持续的时间越长、越可靠(例如跨出厂重置等),用户可能受到长期跟踪的风险就越大。如果在重新安装应用程序时重置标识符,这会减少持久性并提供重置 ID 的方法,即使没有明确的用户控制从应用程序或系统设置中重置它。

但是我不知道如何获取这些标识符,选择我的范围和持久性。谢谢

小智 1

我正在使用这个:

String DeviceId = Settings.Secure.getString(c.getContentResolver(), Settings.Secure.ANDROID_ID);
Run Code Online (Sandbox Code Playgroud)

查看此主题: 是否有唯一的 Android 设备 ID?

  • ANDROID_ID 在恢复出厂设置后不会持续存在。 (2认同)