EMAS 移动推送SDK如何处理隐私合规问题

本文涉及的产品
移动研发平台 EMAS,开发者版免费套餐
简介: 读取个人信息, 读取应用列表,自启动,应用上架被驳回。

移动推送SDK读取的个人信息以及用途:

移动推送

设备信息,包括操作系统、设备型号,IP ,运营商信息

用于识别推送设备,实现向单个设备推送功能


移动热修复SDK读取的App权限以及用途:

移动推送

ACCESS_NETWORK_STATE

获取网络连接状态

当推送异常时,用于判断网络状态。

以上是移动推送设计个人信息和权限的用途, 需要加到你的app隐私文档中,除此之外,你还需要在代码中如下操作:

移动推送SDK的关键方法 PushServiceFactory.init(applicationContext); 必须在Application的onCreate中执行,它不会获取用户信息。register() 需要在用户签署隐私政策之后调用:

public class MyApplication extends Application {

   @Override
   public void onCreate() {

       super.onCreate();
       PushServiceFactory.init(this);  // 正常初始化,这个方法无需延后也不要判断任何进程
       // 获取隐私政策签署状态 ,signedFlag 是你在签署隐私协议的时候保存的签署状态:同意 or 拒绝
       if (signedFlag) {

           CloudPushService.register(callback); //阿里注册
           HuaWeiRegister.register(this); // 厂商注册
       }

   }

}


// 在用户同意隐私协议之后这样写:
if (userClickedUserAgreement) {

   CloudPushService.register(callback); // 阿里注册
   HuaWeiRegister.register(getApplication()); // 厂商注册
}

以上代码片段可以通过大部分应用市场的隐私检查, 但是2022年8月后部分厂商加严了隐私检查,有可能会提示以下问题:


1,android.intent.action.BOOT_COMPLETED用于维持重启后推送通道的稳定性,个别厂商可能会不允许,解决方法:在清单文件中移除调用,移除后对推送功能影响不大,代码如下:

<receiver
   android:name="com.taobao.accs.EventReceiver"
   tools:node="merge"
   android:exported="true">
   <intent-filter tools:node="remove">
       <action android:name="android.intent.action.BOOT_COMPLETED" />
   </intent-filter>
</receiver>

2,部分检测机构认为 读取应用安装列表,原因是调用堆栈中有 queryIntentActivitiesAsUser  调用:

说明: 移动推送代码如下

public static boolean disableComponent(Context context, String componentName) {

   ComponentName comptName = new ComponentName(context, componentName);
   PackageManager pm = context.getPackageManager();
   try {

       ALog.d(TAG, "disableComponent,comptName=" + comptName.toString());
       int enabled = pm.getComponentEnabledSetting(comptName);
       if (enabled != PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {

           pm.setComponentEnabledSetting(comptName,
                   PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                   PackageManager.DONT_KILL_APP);
           return true;
       }

   } catch (Throwable e) {

   }

   return false;
}

PackageManager 的 setComponentEnabledSetting 方法内部实现会去调用 queryIntentActivitiesAsUser,很多 Google 自己的 API 都会调用 queryIntentActivitiesAsUser;

但所有检测机构检测有没有获取安装列表就是坚持有没有代码调用 queryIntentActivitiesAsUser 方法,并不管是业务代码调的,还是 Google 自己 API 调的。

开发者被提示这个的话可以提供以上代码段去厂商申诉,阿里云移动推送SDK并未读取应用安装列表。

如果申诉失败,可以更改SDK初始化代码如下,即可规避:

public static void initOld(Application context) {

   boolean isFirstInstall = true;
   if (isFirstInstall) {

       // 此方法会调用 setComponentEnabledSetting 方法,setComponentEnabledSetting 内部会 触发 queryIntentActivitiesAsUser 调用
       // 所以不存在获取应用列表的行为
       // 但是这个配置,不必每次启动都调用,可以考虑仅在应用第一次启动时,调用,避免后续的频繁调用
       // 是否使用channel进程,这种初始化方式,默认是关,需要手动开启
       ACCSClient.enableChannelProcess(context, true);
   }

   // 这个有参初始化方法仅会在安装时调用一次,不会被应用市场驳回。

   PushServiceFactory.init(context, "appKey", "appSecret");
}

相关文章
|
10月前
|
安全 数据处理 开发工具
第三方SDK合规浅析
近日,工信部通报了22款APP、SDK存在侵害用户权益行为。通报超半数的原因违反了《个保法》最小化收集的原则,包括超范围收集个人信息,APP强制、频繁、过度索取权限。
156 1
|
3月前
|
Serverless PyTorch 文件存储
EMAS Serverless文件存储问题之上传视频真机报错如何解决
在进行Serverless应用开发和部署时,开发者可能会遇到不同类型的报错信息;本合集着重收录了Serverless环境中常见的报错问题及其解决策略,以助于开发者迅速诊断和解决问题,保证服务的连续性和可用性。
422 1
|
存储 域名解析 缓存
集成了阿里云的EMAS相关SDK怎么处理隐私问题?
EMAS中包含一系列SDK,开发者可能集成一个或者多个,有的SDK会涉及到隐私合规问题导致应用上架审核不通过, 以下一些方案可以参考
|
开发工具 Android开发 开发者
EMAS 移动热修复SDK如何处理隐私相关
个人信息读取,权限申请,应用上架被驳回
|
前端开发 JavaScript Android开发
EMAS 移动推送发布uni-app插件
EMAS移动推送提供了uni-app插件,帮助uni-app开发者在多端一次性快速集成移动推送功能。uni-app是一个使用Vue.js开发跨平台应用的前端框架。开发者编写一套代码,uni-app可将其编译到iOS、Android等多个平台,保证其正确运行并达到优秀体验。
EMAS 移动推送发布uni-app插件
|
3月前
|
网络协议 开发工具 Android开发
应用研发平台EMAS产品常见问题之接入httpdns后 访问重定向的url访问有问题如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
3月前
|
运维 监控 Android开发
应用研发平台EMAS产品常见问题之流水线符号表无法下载如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
应用研发平台EMAS产品常见问题之流水线符号表无法下载如何解决
|
3月前
|
运维 监控 Android开发
应用研发平台EMAS产品常见问题之热更新和云发布不能共存如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
3月前
|
缓存 运维 Android开发
应用研发平台EMAS产品常见问题之私有云部署失败如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
3月前
|
缓存 测试技术 开发工具
应用研发平台EMAS产品常见问题之拿不到推送如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。