在用户同意隐私政策前,您的应用获取了用户的ANDROID ID,不符合华为应用市场审核标准。

环境

Android Studio Bumblebee, Mac mini 2014

问题描述

在发布应用到华为应用市场时,提示“在用户同意隐私政策前,您的应用获取了用户的ANDROID ID,不符合华为应用市场审核标准。”。

问题分析

因为隐私政策同意对话框放在启动页,而启动页没做额外动作,并且应用本身没有获取用户 ANDROID ID 的行为,因此怀疑是依赖的第三方 SDK 有此动作,但不好确认是哪个 SDK。所以进一步是确认哪个 SDK 执行了这个动作。

面向搜索引擎编程,首先找到了参考文献CSDN-上架应用市场出现项目中没有使用的敏感权限比如录音权限RECORD_AUDIO,这里介绍的方法正好解决了华为应用市场审核时提到的一个同样的问题,按照文章介绍的方法,确认了是我们自己的 SDK 初始化时使用了录音权限,依此解决了录音权限问题。但没有搜到有获取 ANDROID ID 的 SDK。

另一个参考文献CSDN -您的应用审核未通过,在用户同意隐私政策前,您的应用获取了用户的ANDROID ID则提到了可以向华为应用市场请求调用栈。依此向华为应用市场提出提供调用栈请求,一个小时后就提供了如下调用栈:

[com.mob.tools.utils.DeviceHelper.getAndroidID(DeviceHelper.java:1831),
 com.mob.commons.authorize.a.c(Authorizer.java:204),
 com.mob.commons.authorize.a.b(Authorizer.java:170),
 com.mob.commons.authorize.a.a(Authorizer.java:146),
 com.mob.commons.authorize.a.a(Authorizer.java:119),
 com.mob.commons.authorize.a.a(Authorizer.java:49),
 com.mob.commons.authorize.a$1.run(Authorizer.java:57),
 com.mob.commons.f.a(Locks.java:109),
 com.mob.commons.f.a(Locks.java:43),
 com.mob.commons.authorize.a.a(Authorizer.java:55),
 com.mob.commons.authorize.DeviceAuthorizer.b(DeviceAuthorizer.java:97)

很明显,是集成的 MobSDK 获取了 ANDROID ID, 进一步检查代码,是因为其在 application 中做了 MobSDK.init() 动作。既然这样,那就看 Mob 有没有解决方法了。

果然,在 Mob 官方文档 中详细介绍了隐私合规方法。这里不罗列,直接看官方文档即可。仅简要说明原因是最新的 SDK 已经不需要在 application 中手动初始化了。

问题解决

水到渠成,按照 Mob 官方指南重新修改后,再次审核即通过。

参考文献

  1. CSDN-上架应用市场出现项目中没有使用的敏感权限比如录音权限RECORD_AUDIO
  2. CSDN -您的应用审核未通过,在用户同意隐私政策前,您的应用获取了用户的ANDROID ID
  3. Mob 官方文档

猜你喜欢

转载自blog.csdn.net/dpdcsdn/article/details/127675422