摘要:
1. 准备工作
Android国内厂商碎片化严重,接入厂商的离线推送,能有效的节省用户的设备的耗电、流量等。本文腾讯IM SDK 接入华为推送为例,介绍一下其接入和离线推送的排查流程。需要具备以下条件
- 华为开发者账号
- 华为/荣耀手机真机
2. 将华为SDK接入APP
在华为 开发者连联盟开发服务中找到PUSH 服务,点击后创建对象的项目并开通推送服务
点击 添加应用,填写应用信息后,点击确定。会弹出应用接入指引.
按步骤操作即可
添加自己的证书,证书生成和配置参考下面的华为文档。
添加配置完后,重新build将应用安装到真机上
找到推送服务,发一条推送进行测试
启动APP拿到token
一切正常的话会受到下面的通知。
3.接入腾讯IM
填入信息
注意此处填入的是 OAuth 2.0客户端ID(凭据)
在APP 中调用
示例代码
String APP_ID = "10000000";
try {
String token = HmsInstanceId.getInstance(
//Application 注意控制台的 ChannelID 和 这里的 第二个参数
App.getInstance().getApplicationContext() ).getToken( APP_ID, "HCM" );
Log.i( TAG, "token = " + token );
V2TIMManager.getOfflinePushManager().setOfflinePushConfig(
/* 控制台证书ID 20455 */
new V2TIMOfflinePushConfig( 20455, token ), new V2TIMCallback()
{
@Override
public void onSuccess()
{
/* 离线上保存成功 */
Log.i( TAG, "HMS OfflinePush success" );
}
@Override
public void onError( int i, String s )
{
/* 离线上报失败 */
Log.e( TAG, "HMS OfflinePush error code: " + i + " msg: " + s );
}
} );
Log.i( TAG, token );
} catch ( ApiException e ) {
e.printStackTrace();
}
离线上报的话,可以用离线推送定位工具看一下
一切正常的话会收到一个来着腾讯im的推送。就可以了
4. 后台收到推送
应用后台获得状态,调用一下doBackground 和doForeground 就可以了,Demo有示例
5. 收不到离线推送
1. 看一下厂商能推进来不
2. 看一下离线推送定位工具
3. 看一下sendMessage 有没有设置V2TIMOfflinePushInfo