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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

环境

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 官方文档
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: android