安卓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());
请问,到底是哪里的问题呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您的描述,问题可能出在以下几个方面:
数据封装格式不正确:确保通知消息的数据部分(payload)是按照EMAS SDK要求的格式进行封装的。如果AgooFactory.parseEncryptedMsg()
无法解析Intent中的数据,可能是因为推送的消息体没有被正确加密或者格式不符合EMAS SDK对华为推送服务的解析要求。
AndroidManifest配置问题:请检查您的AndroidManifest.xml
文件中是否正确配置了所有必要的权限、接收器(BroadcastReceiver)和服务(Service)。特别是与华为推送服务相关的配置,如HuaweiPushReceiver
和相应的权限声明等。
Activity启动模式设置:您提到使用的是AndroidPopupActivity
派生的Activity,并且尝试在其中获取推送通知的数据。请确认该Activity的启动模式(launchMode)是否影响了数据的传递。某些启动模式可能导致新的Activity实例创建,而不是复用现有实例,这可能会影响到回调方法的调用。
SDK版本兼容性:确认使用的EMAS SDK版本与华为推送服务以及您的应用目标SDK版本之间是否存在兼容性问题。有时,新旧版本之间的差异可能会导致一些功能不正常工作。
第三方库冲突:检查项目中是否有其他第三方库与EMAS SDK存在潜在的冲突,特别是在处理Intent或消息解析的部分。
日志分析:深入查看EMAS SDK的日志输出,尤其是调试级别日志,以获取更详细的错误信息。这有助于定位问题发生的具体环节。
官方文档与示例代码核对:再次仔细比对阿里云EMAS推送服务的官方文档和提供的示例代码,确保您的实现与推荐的最佳实践完全一致。
技术支持咨询:如果以上步骤都无法解决问题,建议直接联系阿里云的技术支持或通过开发者论坛提问,提供更详细的问题描述和已尝试的解决步骤,以便获得更专业的帮助。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。