Android设备唯一ID实现方案

 我来答
天罗网17
2022-06-17 · TA获得超过6176个赞
知道小有建树答主
回答量:306
采纳率:100%
帮助的人:72.2万
展开全部
随着Google对隐私的重视以及Android10的逐渐普及,获取设备的唯一标识越来越来难,在Android10以前,Android设备唯一标识包含IMEI、AndroidID、DeviceID、Mac地址等,下面收集了一些唯一ID的获取方案:

获取方法:

这是Android系统为开发者提供的标识手机设备串号的方法,局限性:

可以使用手机WiFi或者蓝牙的Mac地址作为设备标识,Android 6.0以后通过 WifiManager 获取到的mac将是固定的:02:00:00:00:00:00 ,
再后来连读取 /sys/class/net/wlan0/address 也获取不到了。
现在只剩下面这种方法可以获取(没有开启wifi也可以获取到):

局限性:

设备首次启动时,系统会随机生成一个64位的数字,并将这个数字以16进制的形式保存下来,flutter官方组件device_info就是通过这个方式获取的,获取方式:

局限性:

获取方式:

局限性:

结合以上几点来看,单独采用其中某一个方案都不是很完美,所以 移动安全联盟MSA 搞了一个OAID,这个本质上也是一个设备的唯一标识,目前已经支持的厂商包括:华为、小米、OPPO、vivo、中兴、努比亚、魅族、联想、三星等

目前已经开发完成,项目地址: https://gitlab.xsyxsc.com/xsfe_flutter/application/plugin/xsyx_mitt_plugin

支持终端版本:

插件说明:OAID支持Android10以上的设备,以前的老设备以及没有更新的设备获取不到。获取到OAID为空的情况下,会自动尝试获取IMEI号,如果用户没有授权或者获取不到IMEI的情况下,会尝试获取MAC地址,再获取不到的时候采用兜底方案AndroidID

获取顺序:
OAID -> IMEI(需要授权) -> MAC地址 -> AndroidID
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式