admin
2021-02-27 db66b085308b8bc7a1ff9440c85895d41c98b5ed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package com.weikou.beibeivideo.receiver;
 
import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
 
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
import com.weikou.beibeivideo.BeibeiVideoAPI;
import com.weikou.beibeivideo.ui.SplashActivity;
import com.weikou.beibeivideo.util.downutil.StringUtils;
import com.xiaomi.mipush.sdk.ErrorCode;
import com.xiaomi.mipush.sdk.MiPushClient;
import com.xiaomi.mipush.sdk.MiPushCommandMessage;
import com.xiaomi.mipush.sdk.MiPushMessage;
import com.xiaomi.mipush.sdk.PushMessageReceiver;
 
import org.apache.http.Header;
import org.json.JSONObject;
 
import java.util.List;
 
public class XMPushMessageReceiver extends PushMessageReceiver {
 
    private String TAG = XMPushMessageReceiver.class.getSimpleName();
 
    public static MiPushMessage miPushMessage = null;
 
    @Override
    public void onReceivePassThroughMessage(Context context, MiPushMessage message) {
        message.getContent();
    }
 
    @Override
    public void onNotificationMessageClicked(Context context, MiPushMessage message) {
        Log.i(TAG, "onNotificationMessageClicked");
        if (!isAppRunning(context, context.getPackageName())) {
            miPushMessage = message;
            Intent intent = new Intent(context, SplashActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(intent);
        } else {
            startActivity(context, null, message);
        }
    }
 
    @Override
    public void onNotificationMessageArrived(Context context, MiPushMessage msg) {
 
    }
 
    @Override
    public void onReceiveRegisterResult(Context context, MiPushCommandMessage message) {
        String command = message.getCommand();
        List<String> arguments = message.getCommandArguments();
        String cmdArg1 = ((arguments != null && arguments.size() > 0) ? arguments.get(0) : null);
        if (MiPushClient.COMMAND_REGISTER.equals(command)) {
            Log.i("mResult", "注册结果码--" + message.getResultCode());
            if (message.getResultCode() == ErrorCode.SUCCESS) {
                Log.i("mResult", "注册成功");
                String mRegId = cmdArg1;
                Log.i(TAG, mRegId);
                if (!StringUtils.isNullOrEmpty(mRegId)) {
 
                    BeibeiVideoAPI.pushBindToken(context, "xm", mRegId, new BasicTextHttpResponseHandler() {
                        @Override
                        public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
 
                        }
                    },false);
                }
            }
        }
    }
 
    public static void startActivity(Context context, Activity activity, MiPushMessage message) {
 
    }
 
    public boolean isAppRunning(Context context, String packageName) {
        Log.i("mResult", "isAppRunning()");
        ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(100);
        boolean isAppRunning = false;
        //100表示取的最大的任务数,info.topActivity表示当前正在运行的Activity,info.baseActivity表系统后台有此进程在运行
        for (ActivityManager.RunningTaskInfo info : list) {
            if (info.topActivity.getPackageName().equals(packageName) || info.baseActivity.getPackageName().equals(packageName)) {
                isAppRunning = true;
                Log.i("ActivityService isRun()", info.topActivity.getPackageName() + " info.baseActivity.getPackageName()=" + info.baseActivity.getPackageName());
                break;
            }
        }
        Log.i("ActivityService isRun()", "com.ad 程序  ...isAppRunning......" + isAppRunning);
        return isAppRunning;
    }
 
}