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;
}
}
};
- private Handler mHandler = null;
+ private static Handler mHandler = null;
PowerManager.WakeLock mWakeLock = null;
private static void play_waning_notify(Context context) {
//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);
});
}
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;
BP94,
AP03,//心跳包
BP03,
- AP05,//语音查询接收
- BP05,
AP07,//语音上行
BP07,
BPAL,//报警与地址回复
APFF,//定位数据包
BPFF,
/* 服务器发起*/
+ BP45,//静音开关
+ AP45,
BPTW,//测量体温
APTW,
AP12,
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");
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");
*
* @return
*/
- public StringMessage APGJ(Runtime runtime) {
+ public static StringMessage APGJ(Runtime runtime) {
//IW:标识符
//APGJ:命令字
//353456789012345: 设备IMEI号,固定15位
}
//关机
-
-
public static StringMessage AP31(String index) {
return genStringMessage("AP31", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))
.append(CMDSPLIT).append(index)
}
-// 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))
} else {
log("handleBP28", "format Error");
// connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,0)));
-
}
}
//通知下面线程状态变化
mConnection.DeliverCMDMessageToSystem("heartbeat", cmd);
break;
- case AP05:
- break;
- case BP05:
- break;
case AP07:
break;
case BP07:
//设置工作模式
handleBP33(mConnection, mRuntime, cmd);
mConnection.DeliverCMDMessageToSystem("setWorkMod", cmd);//通知下面线程状态变化
-
break;
case BP34:
//设置工作模式
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);
ICLogger.d("服务器收到签到信息.");
handleBPRP();
break;
+ case BP45://静音开关
+ ICLogger.d("收到服务器静音开关指令.");
+ handleBP45(cmd);
+ break;
case APTM:
break;
case APCH:
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) {