在友盟官网注册应用,获得appkey,secret等信息。
下载sdk,
主lib导入jar包,
umeng-common-1.5.3.jar
utdid4all-1.1.5.3_proguard.jar
导入module push
再settings.gradle :
include ':app', ':push'
创建MyApplication,进行初始化:
private void initUM() { /** * 初始化common库 * 参数1:上下文,不能为空 * 参数2:友盟 app key * 参数3:友盟 channel * 参数4:设备类型,UMConfigure.DEVICE_TYPE_PHONE为手机、UMConfigure.DEVICE_TYPE_BOX为盒子,默认为手机 * 参数5:Push推送业务的secret todo Umeng Message Secret */ UMConfigure.init(this, "APPKEY", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, "SECRET"); PushAgent mPushAgent = PushAgent.getInstance(this); //注册推送服务,每次调用register方法都会回调该接口 mPushAgent.register(new IUmengRegisterCallback() { @Override public void onSuccess(String deviceToken) { //注册成功会返回device token } @Override public void onFailure(String s, String s1) { } }); mPushAgent.setPushIntentServiceClass(MyPushIntentService.class); }
注册成功会返回devicetoken
然后进行推送。
接收消息
再Manifest中Appliciation节点中注册
<!-- 请填写实际的类名,下面仅是示例代码--> <service android:name="MyPushIntentService" />
public class MyPushIntentService extends UmengMessageService { private static final String TAG = MyPushIntentService.class.getName(); @Override public void onMessage(Context context, Intent intent) { try { //可以通过MESSAGE_BODY取得消息体 String message = intent.getStringExtra(AgooConstants.MESSAGE_BODY); UMessage msg = new UMessage(new JSONObject(message)); MLog.d(TAG, "message=" + message); //消息体 MLog.d(TAG, "custom=" + msg.custom); //自定义消息的内容 MLog.d(TAG, "title=" + msg.title); //通知标题 MLog.d(TAG, "text=" + msg.text); //通知内容 // code to handle message here // ... // 对完全自定义消息的处理方式,点击或者忽略 boolean isClickOrDismissed = true; if (isClickOrDismissed) { //完全自定义消息的点击统计 UTrack.getInstance(getApplicationContext()).trackMsgClick(msg); } else { //完全自定义消息的忽略统计 UTrack.getInstance(getApplicationContext()).trackMsgDismissed(msg); } /* // 使用完全自定义消息来开启应用服务进程的示例代码 // 首先需要设置完全自定义消息处理方式 // mPushAgent.setPushIntentServiceClass(MyPushIntentService.class); // code to handle to start/stop service for app process JSONObject json = new JSONObject(msg.custom); String topic = json.getString("topic"); MLog.d(TAG, "topic=" + topic); if (topic != null && topic.equals("appName:startService")) { // 在【友盟+】portal上新建自定义消息,自定义消息文本如下 //{"topic":"appName:startService"} if (Helper.isServiceRunning(context, NotificationService.class.getName())) return; Intent intent1 = new Intent(); intent1.setClass(context, NotificationService.class); context.startService(intent1); } else if (topic != null && topic.equals("appName:stopService")) { // 在【友盟+】portal上新建自定义消息,自定义消息文本如下 //{"topic":"appName:stopService"} if (!Helper.isServiceRunning(context,NotificationService.class.getName())) return; Intent intent1 = new Intent(); intent1.setClass(context, NotificationService.class); context.stopService(intent1); }*/ } catch (Exception e) { MLog.e(TAG, e.getMessage()); } } }