SharePreferenceUtil.setPrefInt(context, KeyMasterVolume, cycle);
}
+ private static final String KEYGlobalSkipMoveCheckFlag = "SkipMoveCheckGlobalFlag";
+
+ public static void setSkipMoveCheckFlagGlobal(Context context, boolean en) {
+ SharePreferenceUtil.setPrefBoolean(context, KEYGlobalSkipMoveCheckFlag, en);
+ }
+
+ public static boolean getSkipMoveCheckFlagGlobal(Context context) {
+ return SharePreferenceUtil.getPrefBoolean(context, KEYGlobalSkipMoveCheckFlag, true);
+ }
+
public static int getMasterVolume(Context context) {
return SharePreferenceUtil.getPrefInt(context, KeyMasterVolume, 15);
}
}
}
} else if (msg.what == msgWhat_StartSOSLocationProcess) {
-
if (runtime != null) {
//更新lbs信息
CellInfoUtil.getCellInfo(runtime.getContextProxy().getTelephonyManager(), runtime);
-
if (Config.BLEScanProtocol == 0 && runtime.bleInfo.btMacList.size() > 0) {
startSOSLocation = true;//启动SOS定位,为了快速响应,只要wifi定位即可。
if (scanBLEOnly && btHelper.isBtscanning()) {
}
} else {
// Util.mSleep(1000);
- StringMessage waningmsg = protocolAPIHelper.getWarningMSG(runtime);
+ StringMessage waningMsg = protocolAPIHelper.getWarningMSG(runtime);
if (Config.sendSOSAtOnce) {
//客户ZSH因网络较差,经常缓存过多消息造成无法及时发送
//要求直接发送SOS信息,不做缓存。
- connection.send(waningmsg);
+ connection.send(waningMsg);
} else {
- DeliverMessage(waningmsg);
+ DeliverMessage(waningMsg);
}
//add by TrillGates.
//解决多次上传sos状态的问题
import com.ic.protocolSrv.Config;
import com.ic.protocolSrv.CoreService;
import com.ic.protocolSrv.IFZDCallback;
+import com.ic.protocolSrv.LocationClient;
import com.ic.protocolSrv.bean.Alarm;
import com.ic.protocolSrv.bean.Contact;
import com.ic.protocolSrv.bean.HealthInfo;
IP,//配置服务器地址
SOSREC,//服务器响应S0S消息
LOCATIONMODE,//设置工作模式
+ BPMC,//专门控制skipmovecheck
+ APMC,//
}
public static HashMap<CMD_TYPE, String> cmdMap;
cmdMap.put(CMD_TYPE.IP, "IP");
cmdMap.put(CMD_TYPE.SOSREC, "SOSREC");
cmdMap.put(CMD_TYPE.LOCATIONMODE, "LOCATIONMODE");
+ cmdMap.put(CMD_TYPE.BPMC, "BPMC");
+ cmdMap.put(CMD_TYPE.APMC, "APMC");
}
private Connection mConnection = null;
ICLogger.d("服务器收到SOS消息...");
mConnection.DeliverCMDMessageToSystem("sosReceive", cmd);
break;
+ case BPMC:
+ ICLogger.d("收到服务器下发的修改skipmovecheck");
+ handleBPMC(cmd);
+ break;
}
return ret;
}
+
+ private void handleBPMC(String cmd) {
+ //指令,IMEI,流水,值:0,1,2。
+ //0表示关闭,1表示打开,2表示获取当前的状态,不做设置,只返回
+ //IWBPMC,353456789012345,080835,1#
+ String[] split = cmd.split(CMD_SPLIT);
+ if (split.length == 4) {
+ String index = split[2];
+ String value = split[3];
+ ICLogger.d("BPMC index ==> " + index + " value==> " + value);
+ //判断value,返回内容
+ boolean responseValue = false;
+ if ("0".equals(value)) {
+ responseValue = false;
+ LocationClient.setSkipMoveCheck(false);
+ Config.setSkipMoveCheckFlagGlobal(mRuntime.getContextProxy().context, false);
+ } else if ("1".equals(value)) {
+ responseValue = true;
+ LocationClient.setSkipMoveCheck(true);
+ Config.setSkipMoveCheckFlagGlobal(mRuntime.getContextProxy().context, true);
+ } else if ("2".equals(value)) {
+ responseValue = LocationClient.getSkipMoveCheck();
+ }
+ //返回结果
+ StringMessage apmc = APMC(index, responseValue);
+ ICLogger.d("apmc ==> " + apmc);
+ mConnection.send(apmc);
+ } else {
+ ICLogger.d("parse error ==> " + cmd);
+ }
+ }
+
+ /**
+ * 回复内容
+ *
+ * @param index
+ * @param responseValue
+ * @return
+ */
+ private StringMessage APMC(String index, boolean responseValue) {
+ StringMessage stringMessage = genFZDCMD(cmdMap.get(CMD_TYPE.APMC), String.valueOf(responseValue));
+ ICLogger.d("stringMessage ==> " + stringMessage);
+ return stringMessage;
+ }
+
+
/**
* 平台回复: [XT*YYYYYYYYYYYYYYY*LEN*PPQ,ID1,昵称 1,手机号 1,ID2,昵称 2,手机号 2]
* 实例: [XT*8800000015*000A*e476005866e8a2a6407502b3, 5F204E0,555,8800000016, 5F204E1,556]