Android目前可用的设备唯一标识方案有哪些?
之前运用比较广泛的Android & iOS 设备唯一标识方案就是OpenUDID, Android & iOS 端都有相关实现, 但是这两个项目目前都已经是DEPRECATED状态了. 这主要是由于 Android & iOS 系统升级导致原有方案已经无法适用了. 以 Android O 为例, 对于ANDROID_ID 的定义如下:
原文链接: Changes to Device Identifiers in Android O
从上文可知, 不同用户不同App获取到的ANDROID_ID都是不同的, 而包名和签名相同时, 该值是不会变的. 而这点是和原有OpenUDID方案冲突的: 所有使用OpenUDID方案的App都共享一个ID, 并且所有App都会持有这个ID的一个备份, 而这个ID正是读取的ANDROID_ID(有时是通过UDID产生的).
Android OpenUDID 开源项目: github: vieux/OpenUDID
以上.
目前还有哪些可用的设备唯一标识方案?
p.s. iOS 目前可用方案 github: fabiocaccamo/FCUUID
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
https://developer.android.com...
谷歌官方有最佳实践的说明,不过现状基本就是题主说的这样了
http://blog.csdn.net/gxx_2015...
鉴于国内的复杂环境,没有完美的解决方案
针对上面这篇文章,还有一些注意的
1.The IMEI 可能有为空的情况:
-1.1.某些水货手机或者模拟器;1.2.某些魔改国产rom即使给了权限也拿不到,因为他们的权限是细分的
2.Pseudo-Unique ID 刷机可能改变:
-在第三方修改的rom会有修改机型字段的情况出现。
3.The Android ID 不可信
4.The WLAN MAC Address
-在高版本的系统上必须给权限&&wifi打开的状态下才能拿到。wifi关闭的话就拿不到了。所以要保证第一次安装应用的时候wifi是打开的这个比较困难。
5.The BT MAC Address
-蓝牙一般情况下是有的,但是维修的时候也可能被修改。或者说不带蓝牙的设备也拿不到。后一种情况比较少,可以造一个默认值,只是用于填补位数。