我需要在卸载并重新安装应用程序后仍然存在的设备标识符。我知道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的方法,即使没有明确的用户控制来从应用程序或系统设置中重置它。
但我不知道如何获取这些标识符,选择我的范围和持久性。 感谢
答案 0 :(得分:1)
我正在使用它:
String DeviceId = Settings.Secure.getString(c.getContentResolver(), Settings.Secure.ANDROID_ID);