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");
}

相关文章
|
8月前
|
开发工具 图形学
视觉智能开放平台操作报错合集之用sdk调用的时候报code: 400, AccessKeyId is mandatory for this action. 错误,该如何处理
在使用视觉智能开放平台时,可能会遇到各种错误和问题。虽然具体的错误代码和消息会因平台而异,但以下是一些常见错误类型及其可能的原因和解决策略的概述,包括但不限于:1. 认证错误、2. 请求参数错误、3. 资源超限、4. 图像质量问题、5. 服务不可用、6. 模型不支持的场景、7. 网络连接问题,这有助于快速定位和解决问题。
560 0
|
存储 域名解析 缓存
集成了阿里云的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插件
|
14天前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
111 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
6月前
|
JavaScript 前端开发 Java
[Android][Framework]系统jar包,sdk的制作及引用
[Android][Framework]系统jar包,sdk的制作及引用
164 0
|
3月前
|
Java Linux API
Android SDK
【10月更文挑战第21天】
143 1
|
4月前
|
程序员 开发工具 Android开发
Android|使用阿里云推流 SDK 实现双路推流不同画面
本文记录了一种使用没有原生支持多路推流的阿里云推流 Android SDK,实现同时推送两路不同画面的流的方法。
91 7
|
6月前
|
开发工具 Android开发
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
239 4
解决Android运行出现NDK at /Library/Android/sdk/ndk-bundle did not have a source.properties file
|
6月前
|
Dart 开发工具 Android开发
Android Studio导入Flutter项目提示Dart SDK is not configured
Android Studio导入Flutter项目提示Dart SDK is not configured
594 4

热门文章

最新文章