注册

关于使用环信最新sdk集成小米推送的记录

环信已经发布最新的sdk到2.2.5,最新版更新历史中添加了一项“ 在小米手机上,im离线时支持使用小米推送进行消息的推送”
这一项能够让继承了环信sdk的app在小米手机上即使离线也可以收到推送消息,这一功能大大增加了app用户的黏性,不过在集成中有很多用户会遇到一些问题,这里就把配置正确的方法贴出来,供大家参考一下
首先你要有小米的开发者账户,然后能够创建应用(开发者账户这一步自己解决)
环信官方配置推送文档地址:环信官方设置小米推送文档
小米推送服务地址:小米推送服务地址


首先声明一下:环信最新版SDK集成小米推送主要是针对小米设备,在有些小米设备上,这个推送的长连接服务是系统级别的服务,此时SDK就会启动小米的推送,当其他设备上这个长连接服务不是系统级别的,还是可以被杀死,所以和使用环信自己的长连接一样的效果,就不会启动小米推送,使用环信自身的长连接服务去接收消息,因此就算你在其他设备上配置了小米推送,一样不可用​



这里创建了一个现在在写的demo,创建成功后就可以看到应用的信息,我们需要用到AppID、AppKey、AppSecret(这一点在环信文档也有说明)

Image.png



得到这些后去下载小米推送的sdk,加入到自己的项目中,因为下边的配置需要小米推送的jar包
这些都得到了,然后就是要去环信的开发者后台上传证书了,这个有文档说明

Image2.png



接下来就是要配置app端
首先需要在自己的项目配置文件AndroidManifest.xml中添加小米推送的一些 Service 和 Receive
首先是在mainFest标签中加入权限,


(权限这里的包名一定要改成自己的、改成自己的、改成自己的)


<!--小米推送的权限-->
<permission
android:name="net.melove.demo.chat.permission.MIPUSH_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="net.melove.demo.chat.permission.MIPUSH_RECEIVE" />

然后再Application标签中加入Service 和Receive
<!--配置小米推送服务-->
<service
android:name="com.xiaomi.push.service.XMPushService"
android:enabled="true"
android:process=":pushservice" />
<service
android:name="com.xiaomi.mipush.sdk.PushMessageHandler"
android:enabled="true"
android:exported="true" />
<service
android:name="com.xiaomi.mipush.sdk.MessageHandleService"
android:enabled="true" />

<receiver
android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<receiver
android:name="com.xiaomi.push.service.receivers.PingReceiver"
android:exported="false"
android:process=":pushservice">
<intent-filter>
<action android:name="com.xiaomi.push.PING_TIMER" />
</intent-filter>
</receiver>
<receiver
android:name="com.easemob.chat.EMMipushReceiver"
android:enabled="true">
<intent-filter>
<action android:name="com.xiaomi.mipush.RECEIVE_MESSAGE" />
</intent-filter>
<intent-filter>
<action android:name="ccom.xiaomi.mipush.MESSAGE_ARRIVED" />
</intent-filter>
<intent-filter>
<action android:name="com.xiaomi.mipush.ERROR" />
</intent-filter>
</receiver>

最后就是官方文档说的,在初始化sdk的时候加上小米推送的AppID以及AppKey的配置
String APP_ID = "小米 appid";
String APP_KEY = "小米 appkey";
EMChatManager.getInstance().setMipushConfig(APP_ID, APP_KEY);

配置玩了之后可以先用小米官方的推送工具测试下app是否能正常收到推送,测试通过开始测试接收环信的离线消息推送;

这个配置还是比较简单的,只要细心,能理解就一般不会出现问题,
有什么问题可以在环信的社区提问Imgeek社区
 

13 个评论

小哥 这好久不见你更新了,果然还是这么犀利。怒赏32圆~
想知道怎么配置才能成功。我的app根据文档配置了,还是不能接收到新消息。如果可以,请邮件告诉我吧,谢谢! geolo@vip.qq.com
sdk,3.2.3. 按文档配置了小米push。实际上没有效果。无非离线推送。求解决!!!
sdk,3.3.1. 按文档配置了小米push。实际上没有效果,求解决!!!
问题解决了吗
这个集成小米推送后 怎么自己apk
有搞定吗?
我也接入了小米推送 但是我非小米手机根本就无法注册小米推送服务 你的可以了吗?大佬
楼主你好,为什么我的sdk没有com.easemob.chat.EMMipushReceiver这个类
Feick

Feick 回复 Feick

解决了,O(∩_∩)O谢谢
在集成华为推送的时候,同样也没有效果。求解答。
我的也不行。根本没效果。

要回复文章请先登录注册