应用研发平台EMAS 接了华为辅助通道,之前还好的,现在测试按设备推送突然报无效的token。可能是什么原因?deviceid是通过PushServiceFactory拿的
https://help.aliyun.com/document_detail/616692.html
此回答整理自“应用研发平台EMAS开发者交流群”。
厂商通道原生SDK集成,由您自行接入厂商提供的通道SDK和自行进行初始化。
该接入方式,不要求厂商通道SDK版本,不要求使用阿里云移动推送已经集成好的厂商SDK,需要自行接入厂商通道SDK和自行进行初始化,然后在厂商通道初始化成功后,将厂商的设备ID通过接口上传即可,主要针对以下场景:
使用厂商通道用于其他业务需求。
与其他已经集成好厂商通道的SDK发生依赖冲突,比如其他推送或即时通讯产品等。
通道集成
准备工作
请阅读Android SDK版本说明,获取最新SDK配置信息。
添加依赖
将辅助通道扩展包放置到app module的libs路径下,并在app module的build.gradle文件中添加如下配置:
```repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
...
dependencies {
......
//根据具体的版本添加依赖
implementation(name: 'alicloud-android-third-push-x.x.x', ext: 'aar')
implementation fileTree(include: ['*.jar'], dir: 'libs')
}
上传厂商设备ID
在厂商通道初始化成功后,调用ThirdPushManager.reportToken()上传厂商设备ID:
![image.png](https://ucc.alicdn.com/pic/developer-ecology/qjdn6ii4nizke_fb974fa00ac54c6bad66fec146745c57.png)
```/**
* 以华为为例
*
* @param context 上下文对象,建议传ApplicationContext
* @param thirdTokenKeyword 厂商设备ID的标识,下面做详细介绍
* @param token 厂商设备ID,厂商设备ID叫法不同,此处以token为统称
*/
ThirdPushManager.reportToken(context, ThirdPushReportKeyword.HUAWEI.thirdTokenKeyword, token);
ThirdPushReportKeyword类介绍:
管理厂商关键字的枚举类,用于上报厂商设备ID以及收到消息类型的推送时选择关键字使用,目前支持并定义了华为、小米、OPPO、vivo、魅族、Google通道的关键字。
厂商通道通知类型-辅助弹窗
厂商通道,除Google通道外,只能通过辅助弹窗来接收推送数据,详情参考辅助弹窗接入文档,并注意:
在阿里云这边进行厂商通道推送时(使用移动推送控制台或者OpenAPI进行推送时),服务端请必须参考辅助弹窗文档进行服务端配置,服务端参数不设置,不会给厂商通道进行推送。
使用辅助弹窗接收数据,请务必先执行如下操作,否则会解析数据失败。初始化厂商通道解码器,必须在Application中,并且在厂商通道初始化之前调用,Google通道不需要:
ThirdPushManager.registerImpl(new HuaweiMsgParseImpl());
//MsgParseImpl 目前有 HuaweiMsgParseImpl、XiaoMiMsgParseImpl、OppoMsgParseImpl、VivoMsgParseImpl、MeizuMsgParseImpl
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。