温馨提示:
(1)如之前您的应用使用的Common版本高于1.5.4,则Common包不用修改,只需升级替换Push相关的包即可;
(2)由于安卓机型和版本碎片化较多,新版本SDK虽已通过主流机型测试流程,但在暂未覆盖大量用户的情况下,不能完全保证适配所有机型。建议您在更新上线时采用“灰度控制”的方式,如有发现问题随时跟我们联系,我们将全力解决。
完全自定义处理(透传)功能
若开发者需要实现对消息的完全自定义处理,则可以继承 UmengMessageService, 实现自己的Service来完全控制达到消息的处理。使用完全自定义处理后,PushSDK只负责下发消息体且只统计送达数,展示逻辑需由开发者自己写代码实现,点击数和忽略数需由开发者调用UTrack类的trackMsgClick和trackMsgDismissed方法进行统计。
1、实现一个类,继承 UmengMessageService, 重写onMessage(Context context, Intent intent) 方法,注意:该服务不能实现onCreate\onBind等生命周期方法代码,代码如下:
public class UmengNotificationService extends UmengMessageService {
@Override
public void onMessage(Context context, Intent intent) {
String message = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
//处理消息内容
}
}
//注意:该服务不能实现onCreate\onBind等生命周期方法
2、在AndroidManifest.xml 中声明:
<!-- 请填写实际的类名,下面仅是示例代码-->
<service android:name="【应用包名】.UmengNotificationService"
android:permission="android.permission.BIND_JOB_SERVICE" />
3、在自定义Application类的onCreate方法中调用:
mPushAgent.setPushIntentServiceClass(UmengNotificationService.class);
说明:
打开消息行为的数据统计:默认情况下,SDK将用户点击通知栏的行为定义为“打开消息”。使用完全自定义处理后,SDK只能记录消息送达的数据,无法记录消息打开的数据。要记录消息打开的数据,你可以在应用中定义打开消息的语义,并使用以下接口向服务器发送消息打开的数据以便统计:UTrack.getInstance(context).trackMsgClick(msg);
也可以根据需要对自定义处理的消息进行忽略统计:UTrack.getInstance(context).trackMsgDismissed(msg);
如果需要打开Activity,需为Intent添加Flag:Intent.FLAG_ACTIVITY_NEW_TASK,否则无法启动Activity。
如果使用了完全自定义处理后,又想恢复成【友盟+】的默认的处理,可以通过如下设置来恢复mPushAgent.setPushIntentServiceClass(null);