Android10(api29)
获取唯一设备码
1 | public static String getDeviceId(Context context) { |
Android10 可以把设备码存储到“/data/local/tmp”(待验证)
认识OAID
移动安全联盟搞出来的这个OAID,其本质是一个设备唯一标识。
支持厂商
要实现设备唯一,必须是由厂商支持。华为、小米、OPPO、vivo、中兴、努比亚、魅族、联想、三星等均将逐步支持(一些老的设备且没有经过系统更新的不支持)
设备标识
该体系已拥有了四种设备标识
名称 | 生成时间 | 特性 | 重置 | 数据关联 | 适用对象 |
---|---|---|---|---|---|
设备唯一标识符 UDID |
设备生产时或调用时生成 | 不可逆、唯一性、封闭性、一致性、不可篡改性 | 无法重置,始终不变,除非硬件改变 | 全关联 | 用于设备的生产环境及合法性校验,不对外开放 |
匿名设备 标识符 OAID |
系统首次启动后立即生成 | 可关闭性、连接性 | 用户手动重置、恢复出厂设置、设备商重置、被刷机等特殊情况重置 | 广告关联 | 可用于个性化推荐、广告等业务 |
开发者匿名设备标识符 VAID |
可在应用安装时生成 | 设备、开发者、应用的几种情况 | 恢复出厂设置、卸载所有开发商应用、设备商重置、被刷机等特殊情况重置 | 开发者关联 | 可用于同一开发者不同应用之间的推荐等,对外开放 |
应用匿名设备标识符 AAID |
可在应用安装时生成 | 匿名化、无隐私风险,设备、开发者、应用的几种情况 | 恢复出厂设置、卸载应用、清空应用手或设备商重置 | 单应用关联 | 可用于用户统计等 |
使用API
接口名称 | 函数 | 参数 | 返回 | 说明 |
---|---|---|---|---|
补充设备标识状态获取接口 | public static boolean isSupported() |
无 | boolean: 是否支持补充设备标识符获取 | true为支持,false为不支持 |
匿名设备标识符获取接口 | public static String getOAID(Context context) |
Context:应用的Application Context | String:返回匿名设备标识符或异常状态 | 匿名设备标识符最长64位,返回null表示不支持,异常状态包括网络异常、appid异常、应用异常等 |
开发者匿名设备标识符获取接口 | public static String getVAID(Context context, String appid) |
Context:应用的Application Context | String:返回开发者匿名设备符或异常状态 | 开发者匿名设备标识符最长64位,返回null表示不支持,异常状态包括网络异常、appid异常、应用异常等 |
应用匿名设备标识符获取接口 | public static String getAAID(Context context, String appid) |
Context:应用的Application Context | String:返回应用匿名设备标识符或异常状态 | 应用匿名设备标识符最长64位,返回null表示不支持,异常状态包括网络异常、appid异常、应用异常等 |
导入SDK后,通过isSupported()
方法判断设备是否支持,支持后便可以通过相应方法获取对应设备标识。
具体的接入使用可以参考官方文档,下面给出移动安全联盟的官方地址和几个厂商的地址:
移动安全联盟-移动智能设备标识公共服务平台
VIVO-移动智能终端补充设备标识服务
华为-广告服务(OAID)
百度-Android OAID 接入