cycle=60*60;\r
break;\r
case CUSTOM_MOD:\r
+ case CUSTOM_MOD8_GPS:\r
+ case CUSTOM_MOD8_WIFI:\r
cycle=runtime.getLocationInstance().getLocation_cycle();\r
break;\r
}\r
\r
AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context,cycle, ACTION_LOCATION_ALARM);\r
sb.append(" setLocationAlarm "+ACTION_LOCATION_ALARM+" mod "+mod+", cycle in Seconds "+cycle);\r
- locationClient.triggerLocationProcess();\r
-\r
ICLogger.i(sb.toString());\r
if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());\r
+ locationClient.triggerLocationProcess();\r
+\r
}\r
\r
public void setHeartAlarm(){\r
}\r
public void startGpsLocate() {\r
\r
-\r
boolean FactryModeOpening=DeviceInfoUtil.isFactoryTestTopActivity(runtime.getContextProxy().context);\r
boolean needReOpenGPS=runtime.getFactoryTestingStat();\r
\r
\r
switch(mode){\r
case ICLocation.CUSTOM_MOD:\r
+ case ICLocation.CUSTOM_MOD8_GPS:\r
case ICLocation.EMERGNECY_MOD:\r
case ICLocation.REALTIME_MOD:\r
\r
\r
case ICLocation.NORMAL_MOD:\r
case ICLocation.LOWPOWER_MOD:\r
+ case ICLocation.CUSTOM_MOD8_WIFI:\r
default:\r
//wifi优先的话给20秒时间\r
\r
}\r
\r
// 不强制定位 且 WorkingMod 不是紧急模式,且 没有移动过\r
- if ( ( forceLocation != 1 ) && ( mod != ICLocation.REALTIME_MOD )&& ( mod != ICLocation.EMERGNECY_MOD ) && (mod != ICLocation.CUSTOM_MOD) && (runtime.getLastStepCount() == runtime.getTotalStepCount()) && (skipMoveCheck ==false )){\r
+ if ( ( forceLocation != 1 ) &&\r
+ ( mod != ICLocation.REALTIME_MOD )&&\r
+ ( mod != ICLocation.EMERGNECY_MOD ) &&\r
+ (mod != ICLocation.CUSTOM_MOD8_GPS ) &&\r
+// (mod != ICLocation.CUSTOM_MOD8_WIFI ) &&\r
+ (mod != ICLocation.CUSTOM_MOD ) &&\r
+ (runtime.getLastStepCount() == runtime.getTotalStepCount()) && (skipMoveCheck ==false )){\r
ICLogger.i("No Move ,skip location!");\r
return ;\r
}\r
forceLocation=0;\r
isLocating=true;\r
\r
+\r
+\r
runtime.setLastStepCount(runtime.getTotalStepCount());\r
updateCellInfo();\r
startWifiScan();\r
switch(mod){\r
case ICLocation.CUSTOM_MOD:\r
+ case ICLocation.CUSTOM_MOD8_GPS:\r
if(runtime.getLocationInstance().getLocation_cycle()<=60){\r
nmeaListener.setNoStop(true);\r
}else{\r
break;\r
case ICLocation.LOWPOWER_MOD:\r
case ICLocation.NORMAL_MOD:\r
+ case ICLocation.CUSTOM_MOD8_WIFI:\r
default:\r
clearGPSlocateStat(); //如果wifi优先,则确保gps关闭,防止切换回来gps状态错误,尤其是不NoStop模式下的gps切换回来有此风险。\r
\r
ICLogger.i("Set WorkMODE "+mod +" and reset Location AlarmCycle");\r
CoreService.getInstance().setLocationAlarm(mod); //默认设置好Alarm后会触发一次定位,无需后面再触发定位了。\r
forceLocation=1; //不管是什么模式,都强制定位一次,然后再说其他情况\r
+\r
if(mod==ICLocation.EMERGNECY_MOD)\r
CoreService.getInstance().setEmegencyLocationSTOPAlarm(5);//Emergency模式5分钟自动停止\r
// this.startLocationProcess(mod);\r
TextView tv_version=(TextView)findViewById(R.id.textViewVersion);
- tv_version.setText(DeviceInfoUtil.getVersionName(this));
+ tv_version.setText(DeviceInfoUtil.getVersionCode(this)+"-"+DeviceInfoUtil.getVersionName(this));
}
if (noStop == false) {\r
switch (runtime.getLocationInstance().getWorkingMod()) {\r
case ICLocation.CUSTOM_MOD:\r
+ case ICLocation.CUSTOM_MOD8_GPS:\r
case ICLocation.EMERGNECY_MOD:\r
case ICLocation.REALTIME_MOD:\r
//GPS 定位模式不关闭GPS,防止 1分钟定位超时后,重新关闭开启GPS。\r
break;\r
case ICLocation.LOWPOWER_MOD:\r
case ICLocation.NORMAL_MOD:\r
+ case ICLocation.CUSTOM_MOD8_WIFI:\r
default:\r
ICLogger.i("非GPS定位模式,关闭GPS");\r
//非GPS定位模式的话,需要关闭GPS。\r
BP31,//关机\r
AP33,\r
BP33,//工作模式\r
+ AP34,\r
+ BP34,//自定义工作模式\r
APXL,\r
BPXL,//测量心率\r
APXY,\r
cmdMap.put(CMD_TYPE.BP31, "BP31");\r
cmdMap.put(CMD_TYPE.AP33, "AP33");\r
cmdMap.put(CMD_TYPE.BP33, "BP33");\r
+ cmdMap.put(CMD_TYPE.AP34, "AP34");\r
+ cmdMap.put(CMD_TYPE.BP34, "BP34");\r
cmdMap.put(CMD_TYPE.APXL, "APXL");\r
cmdMap.put(CMD_TYPE.BPXL, "BPXL");\r
cmdMap.put(CMD_TYPE.APXY, "APXY");\r
}\r
\r
\r
+\r
public static String AP33(String cmdindex,int workMode){\r
//IWAP33,080835,1#\r
//080835:指令流水号\r
}\r
\r
\r
+ public static String AP34(String cmdindex,int workMode){\r
+//IWAP34,588854,1#\r
+//080835:指令流水号\r
+//8:模式\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34))\r
+ .append(CMDSPLIT).append(cmdindex)\r
+ .append(CMDSPLIT).append(workMode)\r
+ .append(CMDEND).toString();\r
+ }\r
+\r
+ //设置自定义工作模式\r
+ public void handleBP34(Connection connection,Runtime runtime,String cmd){\r
+\r
+// IWBP34,867155030001063,588854,8,900,1#\r
+// IW:标识符\r
+// BP33 : 命令字符\r
+// 353456789012345:IMEI号,设备唯一ID\r
+// 080835:指令流水号\r
+// 1:设备工作模式,1:正常模式,2:省电模式,3:紧急模式\r
+\r
+ String[] cmdlist=cmd.split(",");\r
+ if (cmdlist.length == 6){\r
+\r
+\r
+ log("work mode "+cmdlist[3]);\r
+ int mod=Integer.valueOf(cmdlist[3]);\r
+ int Cycle=Integer.valueOf(cmdlist[4]);\r
+ int gpson=Integer.valueOf(cmdlist[5]);\r
+\r
+ String msg=AP34(cmdlist[2],mod);\r
+ //设定当前工作模式及循环频率\r
+ connection.send(genStringMessage("AP34",msg));\r
+\r
+ if(gpson==1){\r
+ mod=ICLocation.CUSTOM_MOD8_GPS;\r
+ }else{\r
+ mod=ICLocation.CUSTOM_MOD8_WIFI;\r
+ }\r
+ log("reply msg "+msg);\r
+ log("LOCATION_MODE "+LOCATION_MODE+" mod "+ mod + ", cycle = "+Cycle+", GPS On= "+gpson);\r
+ Config.setLocationMode(runtime.getContextProxy().context,mod);\r
+ Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
+ runtime.getLocationInstance().setLocation_cycle(Cycle);\r
+ runtime.getLocationInstance().setWorkingMod(mod);\r
+// CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+ //此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。\r
+ }\r
+\r
+ }\r
\r
/**\r
* 心率上传,返回协议字串\r
connection.send(protocolAPIHelper.genStringMessage("AP15",AP15(index)));\r
ICLogger.i("BP15 , 定位周期="+time+"分钟");\r
\r
- Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD);\r
+ Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
Config.setLocationCycle(runtime.getContextProxy().context,Integer.valueOf(time));\r
runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context));\r
runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context));\r
public static final int REALTIME_MOD=3; //location rate 1 time per minutes\r
public static final int EMERGNECY_MOD=4; //location rate 1 time per minutes work 5 minutes\r
public static final int CUSTOM_MOD=5; //location rate 1 time per minutes\r
-\r
+ public static final int CUSTOM_MOD8_GPS=8; //location rate 1 time per minutes\r
+ public static final int CUSTOM_MOD8_WIFI=9; //location rate 1 time per minutes\r
\r
private int mworkingMod;\r
private int location_cycle;\r
}\r
return "";\r
}\r
+ public static String getVersionCode(Context context,String pkgName) {\r
+ // 获取packagemanager的实例\r
+ PackageManager packageManager = context.getPackageManager();\r
+ // getPackageName()是你当前类的包名\r
+ try {\r
+ PackageInfo packInfo = packageManager.getPackageInfo(pkgName, 0);\r
+ String version = "V"+packInfo.versionCode;\r
+ return version;\r
+\r
+ }catch (Exception e){\r
+ e.printStackTrace();\r
+ }\r
+ return "";\r
+ }\r
+\r
+\r
\r
public static String getVersionCode(Context context) {\r
// 获取packagemanager的实例\r
API.handleBP33(NettyConnection.this,runtime,cmd);\r
DeliverCMDMessageToSystem("setWorkMod",cmd);//通知下面线程状态变化\r
\r
+ break;\r
+ case BP34:\r
+ //设置工作模式\r
+ API.handleBP34(NettyConnection.this,runtime,cmd);\r
+ DeliverCMDMessageToSystem("setWorkMod",cmd);//通知下面线程状态变化\r
break;\r
case BP16:\r
//立即定位指令(长链接有效)\r