gpt4 book ai didi

java - 在 Android 中获取设备 ID 的最佳方法

转载 作者:行者123 更新时间:2023-12-02 08:55:39 25 4
gpt4 key购买 nike

我只是想知道什么是获取设备 ID 的最佳方式我有 2 个选项,要么使用下面需要运行时权限的代码 android.permission.READ_PHONE_STATE -

private String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);

或者

其次,我可以选择 UUID,它不需要任何运行时权限,但需要与用户数据(如电子邮件或电话)映射来识别。

String uniqueID = UUID.randomUUID().toString();

任何建议使用哪一个以及为什么使用,我们将不胜感激。

谢谢

最佳答案

Android ID:

设备首次启动时,会生成并存储一个随机值。该值可通过 Settings.Secure.ANDROID_ID 获得。它是一个 64 位数字,在设备的生命周期内应保持不变。 ANDROID_ID 似乎是唯一设备标识符的不错选择,因为它可用于智能手机和平板电脑。

问题:但是,如果在设备上执行恢复出厂设置,则该值可能会发生变化。制造商生产的流行手机还存在一个已知错误,其中每个实例都具有相同的 ANDROID_ID。显然,该解决方案并不是 100% 可靠。

UUID:

由于大多数应用程序的要求是识别特定的安装而不是物理设备,因此如果使用 UUID 类,那么这是为用户获取唯一 ID 的一个很好的解决方案。

问题:UUID.randomUUID() 方法为特定安装生成唯一标识符。您只需存储该值,您的用户将在下次启动应用程序时被识别。您还可以尝试将此解决方案与 Android 备份服务相关联,以便即使用户在其他设备上安装您的应用程序,也可以保留信息。

结论:

识别 Android 上的特定设备并不是一件容易的事情。有很多充分的理由可以避免这种情况。最好的解决方案可能是使用 UUID 解决方案来识别特定的安装。但是,如果您想绝对地识别物理上的特定设备,您可以尝试使用 ANDROID_ID 解决方案。不是 100% 可靠,但比其他解决方案更好。

关于java - 在 Android 中获取设备 ID 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60503568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com