Android目前可用的设备唯一标识方案有哪些?

之前运用比较广泛的Android & iOS 设备唯一标识方案就是OpenUDID, Android & iOS 端都有相关实现, 但是这两个项目目前都已经是DEPRECATED状态了. 这主要是由于 Android & iOS 系统升级导致原有方案已经无法适用了. 以 Android O 为例, 对于ANDROID_ID 的定义如下:

clipboard.png

原文链接: 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

阅读 14.1k
2 个回答

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

-蓝牙一般情况下是有的,但是维修的时候也可能被修改。或者说不带蓝牙的设备也拿不到。后一种情况比较少,可以造一个默认值,只是用于填补位数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题