1. html5+文档给出的方案:
<br>
| 采用方案 | 是否可行 | 存在问题 |
| --- | --- | --- |
| imei做设备唯一标识 | 否 | Android10 或 AndroidQ版本手机无法获取imei信息,因为谷歌退出了新政策,自 Android 10(API 级别 29)起,您的应用必须是设备或个人资料所有者应用,具有特殊运营商许可,或具有 READ_PRIVILEGED_PHONE_STATE 特权,才能访问不可重置的设备标识符。 |
|uuid做设备唯一标识|否|因为uuid的获取是有一个优先级的,<br><br>顺序为 "imei > wifi mac地址 > 随机mac地址" <br><br>如果可以获取imei就采用imei作为uuid,如果获取不到imei就采用mac地址作为uuid,以此类推。<br><br>例举场景:用户在Android 9 版本使用咱们的软件,因为9是可以获取到imei信息的,所以uuid默认的是imei信息,这时候数据库储存的uuid是手机的imei信息,有一天用户手机更新到Android 10版本,Android 10(Android Q)版本是获取不到imei信息的,所以uuid发生变化,会自动采用mac地址,这时登陆时本地uuid和数据库uuid就会匹配不上。|
|getOAID方法(获取匿名设备标识符)| 否 | getOAID方法是HTML5+为了Android 10(Android Q)版本推出的一个新方法,目前此方法还未健壮完善,只支持部分机型,如下:<br><br>Android - 10+ (支持): 仅在华为、OPPO、VIVO、小米、联想等设备支持。 |
<br>
2. 谷歌Android开发者文档给出的方案:
<br>
| 采用方案 | 是否可行 | 存在问题 |
| --- | --- | --- |
|广告 ID|否|可重置|
|实例ID|否|用户卸载/重新安装应用程序用户清除应用数据|
|GUID|否|可重置|