盒子
盒子
Posts List
  1. 一.升级原因
  2. 二.升级过程
    1. 替换jar包和so库
    2. 权限变更
    3. 移除废弃的activity中统计方法
  3. 三.测试方法
    1. 1.注册开发者,申请应用
    2. 2.修改测试代码
    3. 3. 后台发push
    4. 4.结果
    5. 5.问题

百度 push SDK 升级

一.升级原因

  • 现有单机sdk 所使用的百度push sdk版本为 4.5.1.8,最新版本为5.5.0.50,相比较为陈旧
  • 新版本优化已知BUG,并提高了存活率和到达率

二.升级过程

替换jar包和so库

将原有pushservice-4.5.1.8.jar替换为pushservice-5.5.0.50.jar

将armeabi ,armbeabi-v7a ,mips目录下的libbdpush_V2.3.so替换为libbdpushV2.7.so

x86目录下增加 libbdpushV2.7.so

权限变更

新SDK增加了android L版本的适配权限

<uses-permission android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.duoku.platform.demo.single" />
<permission
android:name="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.duoku.platform.demo.single"
android:protectionLevel="normal" />

富媒体权限

<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />

android N 新增 provider

<provider
android:name="com.baidu.android.pushservice.PushInfoProvider"
android:authorities="com.duoku.platform.demo.single.bdpush"
android:writePermission="baidu.push.permission.WRITE_PUSHINFOPROVIDER.com.duoku.platform.demo.single"
android:protectionLevel = "signature"
android:exported="true" />

移除废弃的activity中统计方法

DKBaseActivity中移除废弃调用

PushManager.activityStarted(this);
PushManager.activityStoped(this);

三.测试方法

1.注册开发者,申请应用

登录push.baidu.com。注册成为百度开发者,新建应用,包名取为
com.duoku.platform.demo.single

2.修改测试代码

修改236行代码,替换 r61XG2cdptg2bsNxh9G1KZU1 为申请的测试key

if (Constants.DEBUG) {
PushManager.startWork(paramContext,
PushConstants.LOGIN_TYPE_API_KEY,"r61XG2cdptg2bsNxh9G1KZU1");
}

启动应用,检测是否有日志 onBind errorCode=0

[PushMessageReceiver:] onBind:onBind errorCode=0 appid=9281322 userId=904605982960513634 channelId=3802890501915864818 requestId=2057324256

3. 后台发push

在push开发者后台,点击创建通知,输入标题和内容,点击确认发送。

4.结果

通知类和透传类消息
小米手机无法收到Push
华为手机秒到

5.问题

点击收到的通知,会调用launcherActivity,如果此时应用已经启动,会发现activity栈中存在两个activity实例。

富媒体消息点击无提示,推送有延迟

支持一下
扫一扫,支持牛头码农