我现在面临一个大问题.在 Android官方参考中找到: http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID public static final String ANDROID_ID *在API级别3中添加 在设备首次启动时随
http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID
public static final String ANDROID_ID
*在API级别3中添加
在设备首次启动时随机生成的64位数字(作为十六进制字符串),应在设备的生命周期内保持不变. (如果在设备上执行恢复出厂设置,则该值可能会更改.)
常量值:“android_id”*
但是有超过500个平板电脑出售(A10 AllWinner)ANDROID_ID并非真正随机生成,我看到(从我的网络服务日志中)有几个设备具有相同的数字!
为什么?
我该如何解决这个问题?如何生成唯一ID?假设所有设备的串行代码始终相同(Same serial number on several android devices. Adb is useless. How can I change the serial number?),并且MAC地址无法始终可用.
一般来说这是Android的一个严重问题 – 看起来Android ID是最好的选择,但是你注意到几个重要的供应商已经搞砸了实现.面对类似的要求,我使用了这些值的哈希值:
>电话号码/ SIM卡号码(如果可用或只使用零)
> Android ID
> Mac地址(如果可用或只使用零)
在我有限的经验(使用的数百个设备)中,这种组合足以实现您所需的独特性.
2017年更新从Android 6开始,出于安全原因,Mac地址返回一个常量值 – 但是在几乎所有较新的android实现中,android ID似乎都是可靠的,所以除非你的目标是旧版本,否则你没有动机使用这种技术.