package com.tejia.lijin.app.receiver;
|
|
import android.app.Activity;
|
import android.app.ActivityManager;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.util.Log;
|
|
import com.alibaba.baichuan.android.trade.model.AlibcShowParams;
|
import com.alibaba.baichuan.android.trade.model.OpenType;
|
import com.tejia.lijin.app.ui.recommend.GoodsDetailActivity;
|
import com.tejia.lijin.app.util.Constant;
|
import com.wpc.library.util.common.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 com.tejia.lijin.app.BuXinConstant;
|
import com.tejia.lijin.app.entity.EventMessageEntity;
|
import com.tejia.lijin.app.entity.Message;
|
import com.tejia.lijin.app.ui.BlankBaiChuanActivity31;
|
import com.tejia.lijin.app.ui.SplashActivity;
|
import com.tejia.lijin.app.ui.main.MainActivity;
|
import com.tejia.lijin.app.util.JumpActivityUtil;
|
|
import org.json.JSONObject;
|
|
import java.util.List;
|
|
import de.greenrobot.event.EventBus;
|
|
/**
|
* Created by weikou2015 on 2017/8/4.
|
*/
|
|
public class MiPushMessageReceiver extends PushMessageReceiver {
|
|
public static MiPushMessage miPushMessage = null;
|
|
@Override
|
public void onReceivePassThroughMessage(Context context, MiPushMessage message) {
|
message.getContent();
|
}
|
|
@Override
|
public void onNotificationMessageClicked(Context context, MiPushMessage message) {
|
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) {
|
try {
|
EventBus.getDefault().post(new EventMessageEntity());
|
if (!StringUtils.isEmpty(msg.getExtra().get("content"))) {
|
JSONObject object = new JSONObject(msg.getExtra().get("content"));
|
Message message = new Message();
|
message.setTitle(object.optString("title"));
|
message.setId(object.optString("id"));
|
message.setContent(object.optString("content"));
|
message.setCreateTime(object.optString("createTime"));
|
message.setIsOpen(object.optString("isOpen"));
|
EventBus.getDefault().post(message);
|
}
|
|
Log.i("mResult", "推送内容为:" + msg);
|
JSONObject object = new JSONObject(msg.getContent());
|
if ("hongbao".equalsIgnoreCase(object.optJSONObject("customContent").optString("type"))) {
|
SharedPreferences sharedPreferences = context.getSharedPreferences("user", Context.MODE_PRIVATE);
|
sharedPreferences.edit().putBoolean("haveHongbao", true).commit();
|
EventBus.getDefault().post(msg);
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
@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", "注册成功");
|
// mRegId = cmdArg1;
|
}
|
}
|
}
|
|
public static void startActivity(Context context, Activity activity, MiPushMessage message) {
|
String cClass = message.getExtra().get("miPushUrl");//miPushUrl
|
String url1 = message.getExtra().get("webUrl");
|
String id = message.getExtra().get("id");
|
String type = message.getExtra().get("type");
|
// Log.e("mResult", "MiPushMessageReceiver..." + cClass);
|
if (type.equalsIgnoreCase("baichuan")) {
|
String url = message.getExtra().get("url");
|
if (activity != null) {
|
AlibcShowParams alibcShowParams = new AlibcShowParams();
|
alibcShowParams.setOpenType(OpenType.Native);
|
JumpActivityUtil.jumpBaiChuan(activity, "", url, "", alibcShowParams);
|
} else {
|
Intent intent = new Intent(context, BlankBaiChuanActivity31.class);
|
intent.putExtra("url", url);
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
context.startActivity(intent);
|
}
|
} else if (type.equalsIgnoreCase("ZNX")) {
|
BuXinConstant.isPushMsg = true;
|
context.startActivity(new Intent(context, MainActivity.class));
|
} else {
|
try {
|
if (cClass.equals("com.tejia.lijin.app.ui.recommend.GoodsBrowserActivity")) {
|
cClass = GoodsDetailActivity.class.getName();
|
}
|
Intent intent = new Intent(context, Class.forName(JumpActivityUtil.filterActivityName(cClass)));
|
if (!StringUtils.isEmpty(url1))
|
intent.putExtra("url", url1);
|
if (!StringUtils.isEmpty(id)) {
|
intent.putExtra("goodsId", id);
|
}
|
intent.putExtra("goodsType", Constant.GOODS_TYPE_TB);
|
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
context.startActivity(intent);
|
} catch (ClassNotFoundException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
|
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;
|
}
|
}
|