友盟推送集成

在友盟官网注册应用,获得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());
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42493749/article/details/81317804