Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么是;使用getString()获取设备标识符;不推荐?_Java_Android - Fatal编程技术网

Java 为什么是;使用getString()获取设备标识符;不推荐?

Java 为什么是;使用getString()获取设备标识符;不推荐?,java,android,Java,Android,我正试图将我的设备ID设置为Logcat,但Android Studio给了我这个警告 不建议使用getstring获取设备标识符 为什么不建议使用它?完整的警告说明: 除此之外,不建议使用这些设备标识符 而非高价值欺诈预防和高级电话使用案例。 对于广告用例,请使用AdvertisingIdClient$Info#getId和For 分析,使用InstanceId#getId 更多信息: 我认为Android不建议使用这个值,因为它是一个永久的唯一id,可以用来跟踪你的用户,他或她不能更改这个

我正试图将我的设备ID设置为Logcat,但Android Studio给了我这个警告

不建议使用getstring获取设备标识符

为什么不建议使用它?

完整的警告说明:

除此之外,不建议使用这些设备标识符 而非高价值欺诈预防和高级电话使用案例。 对于广告用例,请使用AdvertisingIdClient$Info#getId和For 分析,使用InstanceId#getId

更多信息:

我认为Android不建议使用这个值,因为它是一个永久的唯一id,可以用来跟踪你的用户,他或她不能更改这个id或阻止你阅读它。警告中给出的其他选项尊重用户的意愿。这就是为什么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);