Java 为什么是;使用getString()获取设备标识符;不推荐?
我正试图将我的设备ID设置为Logcat,但Android Studio给了我这个警告 不建议使用getstring获取设备标识符 为什么不建议使用它?完整的警告说明: 除此之外,不建议使用这些设备标识符 而非高价值欺诈预防和高级电话使用案例。 对于广告用例,请使用AdvertisingIdClient$Info#getId和For 分析,使用InstanceId#getId 更多信息: 我认为Android不建议使用这个值,因为它是一个永久的唯一id,可以用来跟踪你的用户,他或她不能更改这个id或阻止你阅读它。警告中给出的其他选项尊重用户的意愿。这就是为什么Android推荐你使用它 这真的取决于你将如何使用这个id。现在隐私是一件敏感的事情 还请检查以下内容: …您必须遵守用户的“选择退出基于兴趣的广告” 或“选择退出广告个性化”设置。如果用户已启用 通过此设置,您不能使用广告标识符创建广告 用于广告目的或目标用户的用户配置文件 个性化广告。允许的活动包括上下文 广告、频率上限、转换跟踪、报告和 安全和欺诈检测Java 为什么是;使用getString()获取设备标识符;不推荐?,java,android,Java,Android,我正试图将我的设备ID设置为Logcat,但Android Studio给了我这个警告 不建议使用getstring获取设备标识符 为什么不建议使用它?完整的警告说明: 除此之外,不建议使用这些设备标识符 而非高价值欺诈预防和高级电话使用案例。 对于广告用例,请使用AdvertisingIdClient$Info#getId和For 分析,使用InstanceId#getId 更多信息: 我认为Android不建议使用这个值,因为它是一个永久的唯一id,可以用来跟踪你的用户,他或她不能更改这个
来源:哪个警告?问题似乎不是你使用了getString,而是你根本不应该在应用程序中使用硬件ID。请参阅:@StarterPack实际上,交易是id是否可重置(IMEI等id不可重置,ANDROID_id通过工厂重置)。所以我相信使用ANDROID_ID是可能的,但我发现这个警告显示在AS中很奇怪。那么,现在的解决方案是什么,应该用什么来代替这个ID?再次!应该用什么来代替这个ID?好吧,使用
Secure.ANDROID\u ID
没有什么错。这只是一个警告。我想说,如果你需要一个id用于分析,请使用InstanceId.getId()
,广告使用advisingidClient.Info.getId()
,如果两者都不适合你的需要,请使用Secure.ANDROID
。请记住,根用户可以更改此id。总而言之:最好使用一个或另一个备选方案,如果不能,则禁用此警告(例如,对于单个方法)。
String deviceID = Settings.Secure.getString(getApplicationContext().getContentResolver(),
Settings.Secure.ANDROID_ID);