1.AGC-接入agc的sdk检测到未经用户同意获取AndroidId的问题。
问题背景:
开发者接入华为性能管理、崩溃服务、华为分析等SDK后上架小米应用商店被拒,称检测到未经用户同意获取AndroidId的问题。
用户应用集成了华为性能管理、崩溃、分析sdk:
//华为 APM SDK
implementation 'com.huawei.agconnect:agconnect-apms:1.6.1.303'
//华为崩溃 SDK
implementation 'com.huawei.agconnect:agconnect-crash:1.7.2.300'
//华为 AGC 核心sdk
implementation 'com.huawei.agconnect:agconnect-core:1.7.2.300'
classpath 'com.huawei.agconnect:agcp:1.7.2.300'
并且在build.gradle中设置了APMS.getInstance().enableCollection(false); 获取用户同意权限后再开始采集。但还是会出现获取AndroidId的日志:
com.xiaomi.push.hb.g(Unknown Source:25)<---com.xiaomi.push.hb.c(Unknown Source:3)<---com.xiaomi.mipush.sdk.b$a.a(Unknown Source:31)<---com.xiaomi.mipush.sdk.b$a.a(Unknown Source:4)<---com.xiaomi.mipush.sdk.b.c(Unknown Source:2)<---com.xiaomi.mipush.sdk.MiPushClient.getRegId(Unknown Source:4)<---java.lang.reflect.Method.invoke(Native Method)<---com.huawei.hms.analytics.az.lmn(Unknown Source:17)<---com.huawei.hms.analytics.bq.getCustomEventJson(Unknown Source:163)<---com.huawei.hms.analytics.framework.c.c.a(Unknown Source:12)<---com.huawei.hms.analytics.framework.c.k.run(Unknown Source:45)<---com.huawei.hms.analytics.framework.f.a$a.run(Unknown Source:4)<---java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)<---java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)<---java.lang.Thread.run(Thread.java:764)
解决方案:
从日志中可以看出开发者集成了小米push服务,并且向性能管理SDK的开发工程师进行了咨询,性能sdk没有采集AndroidId的功能,应该是华为分析服务在初始化时,有数据上报需要获取pushToken,调用了小米push服务,小米的pushSDK会获取AndroidID。
目前对于此类问题的解决方案可以参考:
解决步骤:
1、只需要参考官方关于push token的描述加到开发者自己的隐私协议中即可。
2、升级华为分析服务的sdk版本6.5.0.300以上。
3、已按照文档添加相应的获取网络请求方法。
控制发送网络请求方法:先获取用户授权,然后再打开性能服务开关。
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh
标签:sdk,获取,AGC,huawei,华为,AndroidID,agconnect,com,SDK From: https://blog.51cto.com/u_14772288/5822050