【移动推送】Android端阿里云移动推送与其他注册厂商如何同时获取regId?
说明
阿里云提醒您:
如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
本文以小米通道为例,其他厂商通道与小米通道的操作步骤类似。具体信息您可以查看各个类具体内容,这部分注册代码没有混淆。
注意
若您使用厂商的SDK出现依赖冲突,请参见辅助通道SDK与小米华为推送SDK冲突进行处理。
华为通道在阿里云推送SDK中是HuaweiPushReceiver。
魅族通道在阿里云推送SDK中是MeizuPushReceiver。
OPPO和VIVO通道没有Receiver,因此阿里云推送SDK内部会实现一个回调,即重写OppoRegister、VivoRegister。
首先介绍下阿里云推送辅助通道注册逻辑:阿里云推送SDK只会获取小米注册成功后的regId和阿里云推送SDK的设备标识绑定。而注册逻辑就是调用小米的官方注册,然后继承小米官方类PushMessageReceiver,最终阿里云推送MiPushBroadcastReceiver类会接收regId。您可以通过该类获取小米regId后,进行阿里云推送的绑定逻辑。
若您需要腾讯IM或其他SDK也能和阿里云推送SDK一起获取regId,可以参见以下两种方法:
再注册一个Receiver,这个Receiver继承MiPushBroadcastReceiver类,实现父类各个方法,调用(super)一下上层方法,然后在对应方法中拿到您想要的参数,给腾讯IM来绑定。
再注册一个Receiver,这个Receiver继承PushMessageReceiver类,在各个方法中重新写一遍绑定步骤,也就是MiPushBroadcastReceiver里面的所有内容。
注意 这种方式需要自行打印regId来观察注册情况。 在主AndroidManifest.xml文件中注册的Receiver,会覆盖掉所有第三方的注册,最终以主AndroidManifest.xml注册为准,注册Receiver过程中,一些属性必不可少,如下所示:
<receiver
android:name="com.alibaba.sdk.android.push.MiPushBroadcastReceiver"
android:exported="true" >
<intent-filter>
<action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
</intent-filter>
<intent-filter>
<action android:name="com.xiaomi.mipush.MESSAGE_ARRIVED" />
</intent-filter>
<intent-filter>
<action android:name="com.xiaomi.mipush.ERROR" />
</intent-filter>
</receiver>
若上述步骤仍未能定位问题,您可以通过以下方法解决问题:
您可以加入钉钉群咨询问题:
钉钉下载地址:单击下载
钉钉群号:30959784
或者提交工单,提交工单时请选择移动推送类目。
更多官方信息
EMAS官网介绍:https://www.aliyun.com/product/emas
Devops:https://www.aliyun.com/product/emascrash/mobile_devops
移动热修复:https://www.aliyun.com/product/hotfix
移动测试:https://www.aliyun.com/activity/emas/mqcexpert
移动推送:https://www.aliyun.com/product/cps
HTTPDNS:https://www.aliyun.com/product/httpdns
EMAS 控制台: https://emas.console.aliyun.com/products
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。