安卓Q | 用户画像等功能受影响,Device ID禁用适配指南

安卓Q | 用户画像等功能受影响,Device ID禁用适配指南

禁止非系统应用访问Device ID以及WiFi Mac地址随机化是Android Q中两个非常重要的变更。该变更将对应用数据统计、广告推荐、用户画像等业务场景造成影响,本文将为你解读该变更的原理以及适配方案。

变更介绍

为了更好保护用户隐私,谷歌对安卓Q系统中所有获取设备识别码的接口都增加了新的权限控制:READ_PRIVILEGED_PHONE_STATE,该权限需要系统签名的应用才能申请。同时,系统默认WiFi Mac地址随机化,当设备连上不同的WiFi网络时随机生成Mac地址。以上变更意味着开发者将Device ID和WiFi Mac 地址作为用户唯一的标志符。

安卓Q | 用户画像等功能受影响,Device ID禁用适配指南

变更影响

1、影响范围

所有通过READ_PHONE_STATE权限获取Device ID的应用以及将设备WiFi Mac地址作为设备唯一标志符的应用都将受影响,预计受影响的应用比例超过90%。

2、兼容性表现

对于TargetSdkVersion<Q且没有申请READ_PHONE_STATE权限的应用和TargetSdkVersion>=Q的全部应用,获取device id会抛异常SecurityException。

对于 TargetSdkVersion<Q且申请了READ_PHONE_STATE权限的应用,通过getDeviceId接口读取的值为Null。

当设备连接到不同的 Wi-Fi 网络时,系统会随机生成不同的 MAC 地址,将无法作为用户唯一标志。

3、受影响的业务场景

所有依赖Device ID以及固定Mac地址数据的业务都会受到影响,如数据统计、推荐、用户历史数据记录、广告、用户画像等。

适配指导

1、参照官方文档进行适配

唯一标识符最佳方案:

https://developer.android.goo...

Device ID变更介绍文档:

https://developer.android.goo...

2、使用Android ID 代替Device ID

Android ID获取代码:

Settings.System.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);

Android ID和Device ID主要区别在于手机恢复出厂设置后,Android ID将被重置,而Device ID无法重置。

3、接入设备厂商提供的ID

设备厂商华为将会为开发者提供OAID和ODID两个接口来帮助开发者适配该变更,后续我们会发布专门的适配指导。

OAID(Open Anonymous ID ):

开放匿名ID,只能用于广告场景(禁止使用在其他场景),用户可以在手机上进行关闭和重置Open Anonymous ID,重置之后OAID值会变化。OAID采用uuid作为OAID的值,第三方开发者也可以获取。

ODID(Open Device ID):

开放的设备标识 ,用于开放给开发者的设备标识,同一个开发者不同应用获取设备标识是相同的。

1、ODID取值规则:

同一设备上运行的同一个开发者的应用程序,取值相同;同一设备上不同开发者的应用程序,取值不同;不同设备上同一个开发者的应用程序,取值不同;不同设备上不同开发者的应用程序,取值不同。

2、ODID重置规则:

手机恢复出厂设置,所有开发者的取值全部重置;同一设备上同一开发者的应用全部卸载后重新安装,会对对该供应商的取值重置。

更多参考资料:

Android Q Beta开发者文档链接:

https://developer.android.com...

Android Q Beta镜像下载链接:

https://developer.android.com...

Android Q Beta 发布 blog:

https://android-developers.go...

相关推荐