我想为我的应用生成Uuid,所以我尝试了很多方法。
1)使用android.os.Build.SERIAL
获取设备序列号(结果返回“未知”)
2)处理设备ID(我不知道平板设备会返回什么)
3)使用android.provider.Settings.Secure.ANDROID_ID
获取Android ID(似乎是android 2.2版本的一些问题)
4)使用java.util.UUID
5)使用android.os.Build
属性生成伪Uuid
所有这些方法都显示出一些问题。所以我很困惑哪个选择?谁能建议我最好的方法?
Android Developer Blog表示android id将是唯一的
此外,我听说设备的Android ID可以在出厂重置或操作系统更新时更改。
那么在工厂重置或操作系统更新期间是否有机会重复生成新的android id?
注意:假设一个条件
我的问题是会发生什么同样的2设备相同制造商的模型将进行恢复或os更新.Android id将会改变。我在问这个新的身份。两个设备中的android id是否有相同的机会?
答案 0 :(得分:1)
是的,ID有可能重复,但可以忽略不计。
ANDROID_ID有2 ^ 64个可能的值,它们是通过一些随机函数生成的。但是,您很可能不会看到重复的值 - 搜索有关GUID唯一性的讨论以获得重点。
简而言之:您可以假设ANDROID_ID是唯一的。
答案 1 :(得分:1)
每次初始化设备时都会生成ANDROID_ID
(重置后等)。它不依赖于型号,序列号等。即使你有两个相同的设备,它们在复位后的ANDROID_ID
也应该是不同的。 ID不是特别特殊,除了它是设备的全局ID。您可以使用应用程序的UUID实现相同的功能。
答案 2 :(得分:0)
在这个link中讨论了为Android设备创建唯一ID的问题。简而言之,请使用此功能。
import android.provider.Settings.Secure;
private String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);