我需要一个在卸载并重新安装应用程序后仍然存在的设备标识符。我知道 UUID 类为方法提供了一个标识符
String uniqueID = UUID.randomUUID().toString();
但 Android 指南并不清楚其范围和持久性。在下一段中,它说:
Android 操作系统提供了许多具有不同行为特征的 ID,您应该使用哪个 ID 取决于以下特征如何与您的用例一起使用。但这些特征也伴随着隐私问题,因此了解这些特征如何共同发挥作用很重要。
范围
标识符范围解释了哪些系统可以访问标识符。Android 标识符范围通常有三种形式:
单个应用程序。ID 是应用程序内部的,其他应用程序无法访问。
应用程序组- 预定义的相关应用程序组可以访问 ID。
设备- 该 ID 可供设备上安装的所有应用程序访问。授予标识符的范围越广,用于跟踪目的的风险就越大。相反,如果标识符只能由单个应用程序实例访问,则它不能用于跨不同应用程序中的事务跟踪设备。
可重置性和持久性
可重置性和持久性定义了标识符的生命周期并解释了如何重置它。常见的重置触发器是:应用内重置、通过系统设置重置、启动时重置和安装时重置。Android 标识符可以有不同的生命周期,但生命周期通常与 ID 的重置方式有关:
仅会话- 每次用户重新启动应用程序时都会使用一个新 ID。
安装-重置- 每次用户卸载并重新安装应用程序时都会使用一个新 ID。
FDR-reset - 每次用户对设备进行出厂重置时都会使用一个新 ID。
FDR-persistent - ID 在出厂重置后仍然存在。
可重置性使用户能够创建与任何现有配置文件信息无关的新 ID。这一点很重要,因为标识符持续的时间越长、越可靠(例如,通过出厂重置等),用户可能受到长期跟踪的风险就越大。如果在重新安装应用程序时重置标识符,这会减少持久性并提供重置 ID 的方法,即使没有明确的用户控制从应用程序或系统设置中重置它。
但我不知道如何获取这些标识符,选择我的范围和持久性。谢谢