关于使用环信最新sdk集成小米推送的记录
环信已经发布最新的sdk到2.2.5,最新版更新历史中添加了一项“ 在小米手机上,im离线时支持使用小米推送进行消息的推送”
这一项能够让继承了环信sdk的app在小米手机上即使离线也可以收到推送消息,这一功能大大增加了app用户的黏性,不过在集成中有很多用户会遇到一些问题,这里就把配置正确的方法贴出来,供大家参考一下
首先你要有小米的开发者账户,然后能够创建应用(开发者账户这一步自己解决)
环信官方配置推送文档地址:环信官方设置小米推送文档
小米推送服务地址:小米推送服务地址
这里创建了一个现在在写的demo,创建成功后就可以看到应用的信息,我们需要用到AppID、AppKey、AppSecret(这一点在环信文档也有说明)
得到这些后去下载小米推送的sdk,加入到自己的项目中,因为下边的配置需要小米推送的jar包
这些都得到了,然后就是要去环信的开发者后台上传证书了,这个有文档说明
接下来就是要配置app端
首先需要在自己的项目配置文件AndroidManifest.xml中添加小米推送的一些 Service 和 Receive
首先是在mainFest标签中加入权限,
然后再Application标签中加入Service 和Receive
最后就是官方文档说的,在初始化sdk的时候加上小米推送的AppID以及AppKey的配置
配置玩了之后可以先用小米官方的推送工具测试下app是否能正常收到推送,测试通过开始测试接收环信的离线消息推送;
这个配置还是比较简单的,只要细心,能理解就一般不会出现问题,
有什么问题可以在环信的社区提问Imgeek社区
这一项能够让继承了环信sdk的app在小米手机上即使离线也可以收到推送消息,这一功能大大增加了app用户的黏性,不过在集成中有很多用户会遇到一些问题,这里就把配置正确的方法贴出来,供大家参考一下
首先你要有小米的开发者账户,然后能够创建应用(开发者账户这一步自己解决)
环信官方配置推送文档地址:环信官方设置小米推送文档
小米推送服务地址:小米推送服务地址
首先声明一下:环信最新版SDK集成小米推送主要是针对小米设备,在有些小米设备上,这个推送的长连接服务是系统级别的服务,此时SDK就会启动小米的推送,当其他设备上这个长连接服务不是系统级别的,还是可以被杀死,所以和使用环信自己的长连接一样的效果,就不会启动小米推送,使用环信自身的长连接服务去接收消息,因此就算你在其他设备上配置了小米推送,一样不可用
这里创建了一个现在在写的demo,创建成功后就可以看到应用的信息,我们需要用到AppID、AppKey、AppSecret(这一点在环信文档也有说明)
得到这些后去下载小米推送的sdk,加入到自己的项目中,因为下边的配置需要小米推送的jar包
这些都得到了,然后就是要去环信的开发者后台上传证书了,这个有文档说明
接下来就是要配置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社区