助力软件开发企业降本增效 PHP / java源码系统,只需一次付费,代码终身使用! 广告
[TOC] 官方文档:[唯一标识符最佳做法](https://developer.android.com/training/articles/user-data-ids?hl=zh-cn) # 概况 1、避免使用硬件标识符,如AndroidID和IMEI 2、避免使用MAC地址作为唯一标识符 3、对大部分应用来说推荐使用GUID 4、针对国内网络环境可以使用OAID 5、广告用例推荐使用广告ID,集成Firebase的用例推荐使用实例ID 6、使用合适的API可以降低隐私权风险问题 # 具体标识符 ## AndroidID、IMEI(不推荐) Android 8开始,在一台手机上,对于不同的应用来说,获取到的Android ID值是不一样的。Android 10开始,普通应用无法再获取到设备的IMEI。因此不推荐使用AndroidID和IMEI等硬件标识符作为唯一标识符。 ## MAC地址(不推荐) MAC 地址具有全局唯一性,无法由用户重置,在恢复出厂设置后也不会变化。因此,一般不建议使用 MAC 地址进行任何形式的用户标识。Android10开始,设备所有者应用才可以获取到用实际硬件MAC地址,其他应用只能获取到随机变化的MAC地址。 ## GUID(推荐) 可以自定义全局唯一 ID (GUID) 对应用实例进行唯一标识,最简单的方式是使用以下代码生成您自己的 GUID。 ```java String uniqueID = UUID.randomUUID().toString(); ``` 由于该标识符具有全局唯一性,可以使用它来标识特定应用实例。为了避免与跨应用关联标识符有关的问题,请将 GUID 存储到内部存储空间,而不是外部(共享)存储设备。 ## OAID(推荐) OAID是[移动安全联盟](http://www.msa-alliance.cn/)联合华为、小米、OPPO、Vivo等厂商共同开发的支持多厂商的统一补充设备标识符调用SDK,适合于在国内环境下使用。具体文档可参考:[http://www.msa-alliance.cn/col.jsp?id=120](http://www.msa-alliance.cn/col.jsp?id=120) ## 广告ID与实例ID(暂不适用) 广告 ID 是一种可由用户重置的标识符,适用于广告用例,目前暂不适用于国内环境。 实例ID需要应用集成Firebase才可使用,目前暂不适用于国内环境。