开发者社区 问答 正文

APP清理掉后,华为移动推送,点击通知,获取不到数据

安卓APP未启动,华为手机上,通过OpenAPI或者阿里云的控制台已经可以推送通知。

当点击消息后,APP被拉起运行,使用AndroidPopupActivity派生Activity无法得到数据(onSysNoticeOpened未被调用)。在App的MainActivity中,按照“任意Activity集成辅助通道”的方式,是一样的效果,onSysNoticeOpened仍然无法被调用。

在Application中已经注册推送成功,HuaWeiRegister.register注册成功。

重点: 跟踪EMAS的SDK代码,发现Agoo的AgooFactory.parseEncryptedMsg()无法解析Intent中的数据。

HuaWeiRegiser.register()内部已经调用过ThirdPushManager.registerImpl(new HuaweiMsgParseImpl());

请问,到底是哪里的问题呢?

展开
收起
游客2yazra7swlvqi 2022-01-16 18:59:27 760 分享 版权
阿里云 AI 助理回答

根据您的描述,问题可能出在以下几个方面:

  1. 数据封装格式不正确:确保通知消息的数据部分(payload)是按照EMAS SDK要求的格式进行封装的。如果AgooFactory.parseEncryptedMsg()无法解析Intent中的数据,可能是因为推送的消息体没有被正确加密或者格式不符合EMAS SDK对华为推送服务的解析要求。

  2. AndroidManifest配置问题:请检查您的AndroidManifest.xml文件中是否正确配置了所有必要的权限、接收器(BroadcastReceiver)和服务(Service)。特别是与华为推送服务相关的配置,如HuaweiPushReceiver和相应的权限声明等。

  3. Activity启动模式设置:您提到使用的是AndroidPopupActivity派生的Activity,并且尝试在其中获取推送通知的数据。请确认该Activity的启动模式(launchMode)是否影响了数据的传递。某些启动模式可能导致新的Activity实例创建,而不是复用现有实例,这可能会影响到回调方法的调用。

  4. SDK版本兼容性:确认使用的EMAS SDK版本与华为推送服务以及您的应用目标SDK版本之间是否存在兼容性问题。有时,新旧版本之间的差异可能会导致一些功能不正常工作。

  5. 第三方库冲突:检查项目中是否有其他第三方库与EMAS SDK存在潜在的冲突,特别是在处理Intent或消息解析的部分。

  6. 日志分析:深入查看EMAS SDK的日志输出,尤其是调试级别日志,以获取更详细的错误信息。这有助于定位问题发生的具体环节。

  7. 官方文档与示例代码核对:再次仔细比对阿里云EMAS推送服务的官方文档和提供的示例代码,确保您的实现与推荐的最佳实践完全一致。

  8. 技术支持咨询:如果以上步骤都无法解决问题,建议直接联系阿里云的技术支持或通过开发者论坛提问,提供更详细的问题描述和已尝试的解决步骤,以便获得更专业的帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答