不要用最新的华为推送集成文档里的那个版本比如(HMSAgent_2.6.1.302),否则会报错如下,
No virtual method connect()V in class Lcom/huawei/hms/api/HuaweiApiClient; or its super classes (declaration of 'com.huawei.hms.api.HuaweiApiClient'
要用融云集成文档的那个版本(2.5.3.305), 旧版本的华为没有给下载链接怎么办呢?
找到新版本的HMSAgent的下载地址,更改后面的版本号,就可以了。简直是巨坑。
需要注意的是融云的 IMlib.jar已经集成 了HMSAgent,如果再集成一遍的话,app 打release包就会通不过,
会在打Release 包时遇到 duplicate entry 错误
HMSAgent 自动生成的 manifest里面,会缺少下面这个io.rong.push.platform.HMSReceiver,需要加上
<!-- 第三方相关 :接收Push消息(注册、Push消息、Push连接状态)广播 -->
<receiver android:name="io.rong.push.platform.HMSReceiver" >
<intent-filter>
<!-- 必须,用于接收token -->
<action android:name="com.huawei.android.push.intent.REGISTRATION" />
<!-- 必须,用于接收消息 -->
<action android:name="com.huawei.android.push.intent.RECEIVE" />
<!-- 可选,用于点击通知栏或通知栏上的按钮后触发onEvent回调 -->
<action android:name="com.huawei.android.push.intent.CLICK" />
<!-- 可选,查看push通道是否连接,不查看则不需要 -->
<action android:name="com.huawei.intent.action.PUSH_STATE" />
</intent-filter>
</receiver>
集成成功后,日志里面看,有没有一个类似如下的,如果有,那就成功了,及时app不在后台,也会通过厂商渠道发送,极大提高到达率。
D/RongLog-Push[HMSReceiver]: get token successful, token = 0869377********