diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java index d26e6316..01d92f9c 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SimUtil.java @@ -69,6 +69,14 @@ public class SimUtil { ifmessageCorrect = true; sendtype = SmsTypeEnum.REBOOT2.value(); sendmessage = getSendString(content, ifmessageCorrect); + } else if (content.contains(SmsTypeEnum.RESTART_MP.value())) { + ifmessageCorrect = true; + sendtype = SmsTypeEnum.RESTART_MP.value(); + sendmessage = getSendString(content, ifmessageCorrect); + } else if (content.contains(SmsTypeEnum.RESTART_MPMST.value())) { + ifmessageCorrect = true; + sendtype = SmsTypeEnum.RESTART_MPMST.value(); + sendmessage = getSendString(content, ifmessageCorrect); } else if (content.contains(SmsTypeEnum.SET_YW_SCHEDULE.value())) { ifmessageCorrect = true; String[] split1 = StringUtils.splitString1(content); @@ -553,11 +561,24 @@ public class SimUtil { int slot = -1; Set keySet = bundle.keySet(); for (String key : keySet) { - if (key.toLowerCase().contains("slot") || key.toLowerCase().contains("sim")) { - String value = bundle.getString(key, "-1"); - if (value.equals("0") | value.equals("1") | value.equals("2")) { - slot = bundle.getInt(key, -1); + String lcKey = key.toLowerCase(); + if (lcKey.contains("slot") || lcKey.contains("sim")) { + Object value = bundle.get(key); + if (value == null) { + continue; } + + if (value instanceof Integer) { + Integer intVal = (Integer) value; + slot = intVal.intValue(); + } else if (value instanceof String) { + String str = (String)value; + if (str.equals("0") | str.equals("1") | str.equals("2")) { + // slot = bundle.getInt(key, -1); + slot = Integer.parseInt(str); + } + } + break; } } diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java index 2d091280..108ec947 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsSendReceiver.java @@ -44,6 +44,10 @@ public class SmsSendReceiver extends BroadcastReceiver { MpMasterService.rebootDevice(); } else if (type.contains(SmsTypeEnum.REBOOT2.value())) { MpMasterService.rebootDevice(); + } else if (type.contains(SmsTypeEnum.RESTART_MP.value())) { + UpdateSysConfigUtil.restartApp(context); + } else if (type.contains(SmsTypeEnum.RESTART_MPMST.value())) { + UpdateSysConfigUtil.restartMasterApp(context); } else if (type.contains(SmsTypeEnum.SET_YW_SCHEDULE.value())) { UpdateSysConfigUtil.restartMasterApp(context); } else if (type.contains(SmsTypeEnum.SET_OPERATE.value())) { diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsTypeEnum.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsTypeEnum.java index 7aa19dfa..6814885c 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsTypeEnum.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/SmsTypeEnum.java @@ -2,6 +2,8 @@ package com.xypower.mpmaster.sms; public enum SmsTypeEnum { REBOOT1("yw+at+stw21"), REBOOT2("at+stw21"), //重启命令 + RESTART_MP("at+restart=mpapp"), + RESTART_MPMST("at+restart=mpmaster"), SET_YW_SCHEDULE("yw+at+stw51"), //拍照时间表设置 GET_YW_SCHEDULE("yw+at+str51"), //查询拍照时间表 SET_OPERATE("yw+at+stw52"), //设置运维开关 diff --git a/mpmaster/src/main/java/com/xypower/mpmaster/sms/UpdateSysConfigUtil.java b/mpmaster/src/main/java/com/xypower/mpmaster/sms/UpdateSysConfigUtil.java index cc0b7e73..eff322e2 100644 --- a/mpmaster/src/main/java/com/xypower/mpmaster/sms/UpdateSysConfigUtil.java +++ b/mpmaster/src/main/java/com/xypower/mpmaster/sms/UpdateSysConfigUtil.java @@ -329,13 +329,26 @@ public class UpdateSysConfigUtil { } - //重启应用 public static void restartApp(Context context) { + + Intent intent = new Intent(MicroPhotoContext.ACTION_RESTART_MP); + intent.putExtra("noDelay", 1); + intent.setPackage(PACKAGE_NAME_MPAPP); + + context.sendBroadcast(intent); + try { + Thread.sleep(200); + } catch (Exception ex) { + ex.printStackTrace(); + } + PackageManager packageManager = context.getPackageManager(); - Intent intent = packageManager.getLaunchIntentForPackage(MicroPhotoContext.PACKAGE_NAME_MPAPP); + + intent = packageManager.getLaunchIntentForPackage(MicroPhotoContext.PACKAGE_NAME_MPAPP); intent.putExtra("noDelay", 1); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + // intent.putExtra("reboot", 1); + intent.addFlags(/*Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | */Intent.FLAG_ACTIVITY_CLEAR_TOP); context.startActivity(intent); }