From: TrillGates Date: Sat, 14 Aug 2021 07:54:51 +0000 (+0800) Subject: handle 5% battery lev shutdown and report. X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=e8e979e41650da21edbe8e944f80b5054481a976;p=icsupport.git handle 5% battery lev shutdown and report. --- diff --git a/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java b/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java index 65092032..5fd2be51 100644 --- a/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java +++ b/app/src/main/java/com/enqualcomm/support/utils/BatteryUtil.java @@ -23,7 +23,9 @@ import com.enqualcomm.support.provider.ICDatabaseHelper; import com.enqualcomm.support.provider.WarningItemProvider; import com.enqualcomm.support.service.AntiMonitorService; import com.enqualcomm.support.service.AudioService; +import com.enqualcomm.support.service.Deliver; import com.ic.protocols.protocolAPIHelper; +import com.ic.protocols.protocol_s123; import static android.os.BatteryManager.BATTERY_STATUS_CHARGING; import static android.os.BatteryManager.BATTERY_STATUS_DISCHARGING; @@ -123,7 +125,7 @@ public class BatteryUtil { } } }; - private Handler mHandler = null; + private static Handler mHandler = null; PowerManager.WakeLock mWakeLock = null; private static void play_waning_notify(Context context) { @@ -219,18 +221,21 @@ public class BatteryUtil { //Deliver.sendLocationMSG( protocolAPIHelper.getWarningMSG(runtime)); ICLogger.i("triggerSOSLocationProcess "); LocationClient.getInstance().triggerSOSLocationProcess(); + //通知后台,我要关机了,然后执行关机 + Deliver.sendLocationMSG(protocol_s123.APGJ(runtime)); + //延时1秒钟 + mHandler.postDelayed(() -> { + CoreService.DevliverStringMessage("poweroff"); + }, 1000); } } private void send_batterylow_event_broadcast(Context context, int batlow) { - mHandler.post(new Runnable() { - @Override - public void run() { - Intent intent = new Intent(); - intent.setAction(ACTION_BATTERYLOW); - intent.putExtra(KEY_BATTERY_EVENT, batlow); - context.sendBroadcast(intent); - } + mHandler.post(() -> { + Intent intent = new Intent(); + intent.setAction(ACTION_BATTERYLOW); + intent.putExtra(KEY_BATTERY_EVENT, batlow); + context.sendBroadcast(intent); }); } diff --git a/app/src/main/java/com/ic/protocols/protocol_s123.java b/app/src/main/java/com/ic/protocols/protocol_s123.java index da97dcb0..1319ec43 100644 --- a/app/src/main/java/com/ic/protocols/protocol_s123.java +++ b/app/src/main/java/com/ic/protocols/protocol_s123.java @@ -47,6 +47,7 @@ import com.enqualcomm.support.utils.CameraUtil; import com.enqualcomm.support.utils.Connection; import com.enqualcomm.support.utils.ICAudioManager; import com.enqualcomm.support.utils.ICLogger; +import com.enqualcomm.support.utils.ProfileManager; import com.enqualcomm.support.utils.SharePreferenceUtil; import com.enqualcomm.support.utils.TemperatureUtil; import com.enqualcomm.support.utils.TimeUtil; @@ -195,8 +196,6 @@ public class protocol_s123 { BP94, AP03,//心跳包 BP03, - AP05,//语音查询接收 - BP05, AP07,//语音上行 BP07, BPAL,//报警与地址回复 @@ -216,6 +215,8 @@ public class protocol_s123 { APFF,//定位数据包 BPFF, /* 服务器发起*/ + BP45,//静音开关 + AP45, BPTW,//测量体温 APTW, AP12, @@ -339,8 +340,6 @@ public class protocol_s123 { cmdMap.put(CMD_TYPE.BP94, "BP94"); cmdMap.put(CMD_TYPE.AP03, "AP03"); cmdMap.put(CMD_TYPE.BP03, "BP03"); - cmdMap.put(CMD_TYPE.AP05, "AP05"); - cmdMap.put(CMD_TYPE.BP05, "BP05"); cmdMap.put(CMD_TYPE.AP07, "AP07"); cmdMap.put(CMD_TYPE.BP07, "BP07"); cmdMap.put(CMD_TYPE.BPAL, "BPAL"); @@ -361,6 +360,8 @@ public class protocol_s123 { cmdMap.put(CMD_TYPE.APFF, "APFF"); cmdMap.put(CMD_TYPE.BPFF, "BPFF"); /* 服务器发起*/ + cmdMap.put(CMD_TYPE.BP45, "BP45"); + cmdMap.put(CMD_TYPE.AP45, "AP45"); cmdMap.put(CMD_TYPE.BPTW, "BPTW"); cmdMap.put(CMD_TYPE.APTW, "APTW"); cmdMap.put(CMD_TYPE.AP12, "AP12"); @@ -527,7 +528,7 @@ public class protocol_s123 { * * @return */ - public StringMessage APGJ(Runtime runtime) { + public static StringMessage APGJ(Runtime runtime) { //IW:标识符 //APGJ:命令字 //353456789012345: 设备IMEI号,固定15位 @@ -1109,8 +1110,6 @@ public class protocol_s123 { } //关机 - - public static StringMessage AP31(String index) { return genStringMessage("AP31", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31)) .append(CMDSPLIT).append(index) @@ -1413,40 +1412,20 @@ public class protocol_s123 { } -// AP05命令L02服务器不适用 -// public static String AP05(boolean recvFlag){ -// -//// IWAP05,1# -// return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP05)) -// .append(CMDSPLIT).append(recvFlag?1:0) -// .append(CMDEND).toString(); -// -// } -// -// -// public void handleBP05(String cmd){ -//// IWBP05,6# -// String[] cmdlist=cmd.split(CMDSPLIT); -// if (cmdlist.length>1){ -// ICLogger.i(" 服务器有 " +cmdlist[1]+" 条语音未接收!"); -// } -// } - - public static byte[] AP07(String packetTime, int count, int index, int datalen, byte[] amrdata) { -//IWAP07,20140818064408,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX# -//说明: -//IW:标识符 -//AP07 : 命令字符 -//20140818064408 :yyyyMMddHHmmss 格式的年月日时分秒,设备录音时间 -//6:语音包分包总数 -//1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同 -//1024 :语音包长度 -//XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数 -//语音包上传规则: -//按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。 -//收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。 -//如果设备回复确认数据包接收失败状态,则重复发送上一个数据包 + //IWAP07,20140818064408,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX# + //说明: + //IW:标识符 + //AP07 : 命令字符 + //20140818064408 :yyyyMMddHHmmss 格式的年月日时分秒,设备录音时间 + //6:语音包分包总数 + //1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同 + //1024 :语音包长度 + //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数 + //语音包上传规则: + //按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。 + //收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。 + //如果设备回复确认数据包接收失败状态,则重复发送上一个数据包 String sb = new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP07)) @@ -1940,7 +1919,6 @@ public class protocol_s123 { } else { log("handleBP28", "format Error"); // connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,0))); - } } @@ -3441,10 +3419,6 @@ public class protocol_s123 { //通知下面线程状态变化 mConnection.DeliverCMDMessageToSystem("heartbeat", cmd); break; - case AP05: - break; - case BP05: - break; case AP07: break; case BP07: @@ -3479,7 +3453,6 @@ public class protocol_s123 { //设置工作模式 handleBP33(mConnection, mRuntime, cmd); mConnection.DeliverCMDMessageToSystem("setWorkMod", cmd);//通知下面线程状态变化 - break; case BP34: //设置工作模式 @@ -3524,14 +3497,12 @@ public class protocol_s123 { ICLogger.i("收到服务器恢复出厂设置命令BP17"); mConnection.DeliverCMDMessageToSystem("FactoryReset", cmd);//通知下面线程状态变化 break; - case BP18: //收到重启 handleBP18(mConnection, cmd); ICLogger.i("收到服务器重启命令BP18"); mConnection.DeliverCMDMessageToSystem("Reboot", cmd);//通知下面线程状态变化 break; - case BP31: //收到关机 handleBP31(mConnection, cmd); @@ -3720,6 +3691,10 @@ public class protocol_s123 { ICLogger.d("服务器收到签到信息."); handleBPRP(); break; + case BP45://静音开关 + ICLogger.d("收到服务器静音开关指令."); + handleBP45(cmd); + break; case APTM: break; case APCH: @@ -3846,6 +3821,33 @@ public class protocol_s123 { return ret; } + /** + * 静音开关控制 + * + * @param cmd + */ + private void handleBP45(String cmd) { + String[] split = cmd.split(CMDSPLIT); + if (split.length == 4) { + String indexId = split[2]; + String value = split[3]; + Context context = mRuntime.getContextProxy().context; + AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); + //更新设置 + if ("1".equals(value)) { + ProfileManager.silentAll(context, audioManager); + } else { + ProfileManager.restoreSilent(context, audioManager); + } + //修改数据库 + updateSettingValue("key_silent", value); + //返回消息 + responseWithId(cmdMap.get(CMD_TYPE.AP45), indexId, value); + } else { + ICLogger.d("parse error==> " + cmd); + } + } + //测量体温 //响应服务器 private void handleBPTW(String cmd) {