private static ReentrantLock lock = new ReentrantLock();\r
\r
private static boolean mHasWifiResult = true;\r
- \r
- @SuppressLint("NewApi")\r
+\r
public static LinkedBlockingDeque<StringMessage> queue = new LinkedBlockingDeque(50);\r
\r
private static Runtime runtime;\r
// resolveResult(0, paramInt1, paramInt3, paramDouble1, paramDouble2, paramDouble3, paramFloat1, paramFloat2, paramInt4, paramFloat3, paramLong1, paramLong2, paramDouble4, paramDouble5, paramInt5, this.mPedometer2, paramInt6);\r
}\r
\r
- public void EqcAlgorithmInterfaceMethod2() {\r
+// public void EqcAlgorithmInterfaceMethod2() {\r
+ public void startGpsLocate() {\r
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {\r
- Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), "gps", true);\r
+ Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, true);\r
}\r
Single.just(null).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<Object>() {\r
public void call(Object param1Object) { LocationClient.this.nmeaListener.startListen(); }\r
}\r
\r
@TargetApi(Build.VERSION_CODES.FROYO)\r
- public void EqcAlgorithmInterfaceMethod3() {\r
+// public void EqcAlgorithmInterfaceMethod3() {\r
+ public void stopGpsLocate() {\r
if (Deliver.is_active_location) {\r
Deliver.is_active_location = false;\r
getLocationWakeLock();\r
});\r
}\r
\r
- public void EqcAlgorithmInterfaceMethod4() { this.mLbsHelper.getAttchCellInfo(runtime.getContextProxy().getTelephonyManager()); }\r
+// public void EqcAlgorithmInterfaceMethod4() {\r
+public void updateCellInfo() {\r
+ this.mLbsHelper.getAttchCellInfo(runtime.getContextProxy().getTelephonyManager());\r
+\r
+ }\r
\r
- public void EqcAlgorithmInterfaceMethod5(int paramInt) { SimSignalUtil.getInstance((runtime.getContextProxy()).context); }\r
+// public void EqcAlgorithmInterfaceMethod5(int paramInt) {\r
+ public void updateSimSignalInfo(int paramInt) {\r
+ SimSignalUtil.getInstance((runtime.getContextProxy()).context);\r
+ }\r
\r
- public void EqcAlgorithmInterfaceMethod6(int paramInt) {\r
+// public void EqcAlgorithmInterfaceMethod6(int paramInt) {\r
+ // 飞行模式 1 开启 0 关闭\r
+ public void setAirMode(int paramInt) {\r
boolean bool1 = this.mSignalUtil.IsAirModeOn();\r
boolean bool2 = this.mSignalUtil.isScreenON();\r
switch (paramInt) {\r
if (!"".equals(runtime.getKey()) && runtime.getKey() != null) {\r
this.gSensorListener.startListen(paramWakeLock);\r
performAlarm(paramWakeLock);\r
- } \r
+ }\r
}\r
\r
public void onReceive(StringMessage paramStringMessage) {\r
package com.ic.protocol.adapter;\r
\r
+import android.util.Log;\r
+\r
import com.ic.protocol.bean.Runtime;\r
+import com.ic.protocol.bean.StringMessage;\r
+import com.ic.protocol.utils.Connection;\r
import com.ic.protocol.utils.Logger;\r
\r
import java.util.HashMap;\r
BP10,\r
AP49,//心率上传\r
BP49,\r
+ APHT,//心率血压上传\r
+ BPHT,\r
APTM,//基站校时及获取定位\r
BPTM,\r
/* 服务器发起*/\r
cmdMap.put(CMD_TYPE.BP10, "BP10");\r
cmdMap.put(CMD_TYPE.AP49, "AP49");\r
cmdMap.put(CMD_TYPE.BP49, "BP49");\r
+ cmdMap.put(CMD_TYPE.APTM, "APHT");\r
+ cmdMap.put(CMD_TYPE.BPTM, "BPHT");\r
cmdMap.put(CMD_TYPE.APTM, "APTM");\r
cmdMap.put(CMD_TYPE.BPTM, "BPTM");\r
cmdMap.put(CMD_TYPE.AP12, "AP12");\r
.append(ds.getTotalStepCount()).append(CMDSPLIT).append(0/*rolltime*/).append(CMDEND).toString();\r
}\r
\r
+ /*LBS+GPS混合定位*/\r
public static String AP01(Runtime ds) {\r
//示例数据:IWAP01080524A2232.9806N11404.9355E000.1061830323.8706000908000102,\r
// 460,0,9520,3671,\r
.append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString();\r
}\r
\r
+ /*语音下行反馈*/\r
public static String AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) {\r
//示例数据:IWAP28,D3590D54,xxxx,6,1,1#\r
return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28))\r
\r
}\r
\r
+//设置闹钟\r
+ public void handleBP85(String cmd , Connection connection,Runtime runtime){\r
+// IWBP85,867155030001063,155312,1,1,0235,12,1,1\r
+// IWBP85,353456789012345,080835,1,3, 0900,135,1,1@0900 ,135,1,2@0900 ,135,1,3#\r
+//353456789012345:IMEI号,设备唯一ID\r
+//080835 :指令流水号\r
+//1: 表示闹钟总开关,1为开,0 为关\r
+//3: 表示闹钟个数\r
+//0900 ,135,1,1,表示一组闹钟,0900表示早上09:00, 135表示周一周三周五,使用24小时制\r
+//1表示该组闹钟开启或关闭状态 1表示开启 0表示关闭\r
+//1表示吃药提醒\r
+//2 表示喝水提醒\r
+//3 表示久坐提醒\r
+//多组闹钟之间用”@”符号分隔\r
+\r
+ String imei="",cmdindex="0"/*指令流水号*/;\r
+ int all_alarmswitch=0 /*总开关 1为开,0 为关*/,\r
+ alarmswitch=0 /*1为开,0 为关*/,\r
+ alarmcount=0 /*表示闹钟个数*/;\r
+ String alarmtime="";//0900表示早上09:00\r
+ int alarmtype=1; //1表示吃药提醒 , 2 表示喝水提醒 ,3 表示久坐提醒\r
+ String repeat="";// 135表示周一周三周五,使用24小时制\r
+ String[] datalist= cmd.split("@");\r
+ if (datalist.length >0){\r
+ for (int i =0 ; i< datalist.length;i++){\r
+ String [] cmdarglist=datalist[i].split(",");\r
+\r
+ if (i == 0){\r
+ if (cmdarglist.length == 9){\r
+ imei=cmdarglist[1];\r
+ cmdindex=cmdarglist[2];\r
+ all_alarmswitch=Integer.valueOf(cmdarglist[3]);\r
+ alarmcount=Integer.valueOf(cmdarglist[4]);\r
+ alarmtime=cmdarglist[5];\r
+ repeat=cmdarglist[6];\r
+ alarmswitch=Integer.valueOf(cmdarglist[7]);\r
+ alarmtype = Integer.valueOf(cmdarglist[8]);\r
+ log(new StringBuilder("imei ").append(imei)\r
+ .append(", cmdindex ").append(cmdindex)\r
+ .append(", allswitch=").append(all_alarmswitch)\r
+ .append(", all alarm count=").append(alarmcount)\r
+ .toString()\r
+ );\r
+\r
+ log(new StringBuilder("alarmtime ").append(alarmtime)\r
+ .append(", relpeat ").append(repeat)\r
+ .append(", switch=").append(alarmswitch)\r
+ .append(", alarmtype=").append(alarmtype)\r
+ .toString()\r
+ );\r
+\r
+ }else{\r
+ log("data len is too small!");\r
+ }\r
+ }else{\r
+ if (cmdarglist.length == 4){\r
+ alarmtime=cmdarglist[0];\r
+ repeat=cmdarglist[1];\r
+ alarmswitch=Integer.valueOf(cmdarglist[2]);\r
+ alarmtype = Integer.valueOf(cmdarglist[3]);\r
+\r
+ log(new StringBuilder("set alarmtime ").append(alarmtime)\r
+ .append(", relpeat ").append(repeat)\r
+ .append(", switch=").append(alarmswitch)\r
+ .append(", alarmtype=").append(alarmtype)\r
+ .toString()\r
+ );\r
+ }else{\r
+ log("data len is too small!");\r
+ }\r
+ }\r
+ }\r
+ }\r
+\r
+\r
+ String replycmd = cmd.replace(new StringBuilder("IWBP85,").append(imei).append(",").toString(),"");\r
+ connection.send(new StringMessage(AP85(runtime,replycmd)));\r
+ }\r
+\r
+\r
+\r
+\r
+ public static String AP85(Runtime ds,String cmddata){\r
+//示例数据:IWAP49,68##\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85))\r
+ .append(CMDSPLIT).append(cmddata)\r
+ .append(CMDEND).toString();\r
+\r
+ }\r
+\r
+ //设置工作模式\r
+ public void handleBP33(Connection connection,Runtime runtime,String cmd){\r
+\r
+// IWBP33,867155030001063,560555,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 == 4){\r
+\r
+\r
+ log("work mode "+cmdlist[3]);\r
+ connection.send(new StringMessage(AP33(cmdlist[2],Integer.valueOf(cmdlist[3]))));\r
+\r
+ }\r
+\r
+ }\r
+ public static String AP33(String cmdindex,int workMode){\r
+//IWAP33,080835,1#\r
+//080835:指令流水号\r
+//1:设置信息,供服务器同步\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33))\r
+ .append(CMDSPLIT).append(cmdindex)\r
+ .append(CMDSPLIT).append(workMode)\r
+ .append(CMDEND).toString();\r
+ }\r
+\r
+ /*心率数据上传*/\r
+ public static String AP49(Runtime ds){\r
+ //示例数据:IWAP49,68##\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49))\r
+ .append(CMDSPLIT).append("460")\r
+ .append(CMDEND).toString();\r
+\r
+ }\r
+ // 立即定位指令(长链接有效)\r
+ public void handleBP16(Connection connection,Runtime runtime,String cmd){\r
+ //示例数据:IWBP16,867155030001063,335386\r
+// IWBP16,353456789012345,080835#\r
+// 说明:\r
+// IW:标识符\r
+// BP16 : 命令字符\r
+// 353456789012345:IMEI号,设备唯一ID\r
+// 080835 :指令流水号\r
+ String[] cmdlist = cmd.split(",");\r
+ if(cmdlist.length==3){\r
+ log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]);\r
+ connection.send(new StringMessage(AP16(cmdlist[2])));\r
+ }else{\r
+ log("error BP16 format");\r
+ }\r
+ }\r
+ //立即定位反馈\r
+ public static String AP16(String cmdindex){\r
+//IWAP16,080835#\r
+//080835:指令流水号\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16))\r
+ .append(CMDSPLIT).append(cmdindex)\r
+ .append(CMDEND).toString();\r
+ }\r
+ /*上传心率与血压*/\r
+ public static String APHT(Runtime ds){\r
+ //示例数据:IWAPHT,60,130,85#\r
+ // 60 : 表示心率\r
+ //130: 血压高压 [收缩压]\r
+ //85 : 血压低压 [舒张压]\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))\r
+ .append(CMDSPLIT).append("60")\r
+ .append(CMDSPLIT).append("130")\r
+ .append(CMDSPLIT).append("85")\r
+ .append(CMDEND).toString();\r
+\r
+ }\r
+ /*通过基站获取时间和坐标*/\r
+ public static String APTM(Runtime ds){\r
+ //示例数据:IWAPTM,460,0,9750,3613#\r
+ return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM))\r
+ .append(CMDSPLIT).append("460")\r
+ .append(CMDSPLIT).append("0")\r
+ .append(CMDSPLIT).append("9750")\r
+ .append(CMDSPLIT).append("3613")\r
+ .append(CMDEND).toString();\r
+\r
+ }\r
//处理 登录 BP00\r
private void handleBP00(String cmd){\r
String[] msg=cmd.split(CMDSPLIT);\r
}\r
}\r
\r
+ //设置联系人白名单(10个)\r
+ private void handleBP14(String cmd){\r
+ //IWBP14,353456789012345,080835,D3590D54|135xxxxxxxxxx, D3590D54|135xxxxxxxxxx,\r
+ // D3590D54|135xxxxxxxxxx, D3590D54|135xxxxxxxxxx, D3590D54|135xxxxxxxxxx, D3590D54|135xxxxxxxxxx,\r
+ // D3590D54|135xxxxxxxxxx, D3590D54|135xxxxxxxxxx, D3590D54|135xxxxxxxxxx, D3590D54|135xxxxxxxxxx#\r
+ //D3590D54|135xxxxxxxxxx : 一组联系人,使用|分隔名称和电话号码名称使用UNICODE编码直接下发byte,多组之间使用逗号分隔,未填写的可为空,但位置仍需保留\r
+\r
+\r
+\r
+ }\r
+\r
+ //设置定位周期\r
+ public void handleBP15(String cmd){\r
+// IWBP15, 353456789012345, 080835, 30#\r
+// 353456789012345:IMEI号,设备唯一ID\r
+// 080835 :指令流水号\r
+// 30: 表示频率为30分钟\r
+\r
+ }\r
+\r
+\r
+\r
//处理 心跳 BP01\r
private void handleBP01(String cmd){\r
log("BP01定位接收成功");\r
\r
private String haveTry;\r
\r
- private String host = "watch.jiai.pro";\r
+ private String host = "watch.jiai.pro"; //118.178.155.223\r
\r
private String srvIP = "39.98.94.164";\r
\r
private String imei = "867155030001063";\r
- \r
+\r
+ private int port = 8090;//20048;//8888;//8090;\r
+\r
+ private boolean testServerProp=false;\r
+\r
private String imei_cid = "";\r
\r
private String imei_cid_key = "";\r
\r
private boolean isNeedAntioff;\r
\r
- private String key = "";\r
+ private String key = "867155030001063";\r
\r
public String lacByAt;\r
\r
\r
private String mccAndMnc;\r
\r
- private int port = 20048;//8888;//8090;\r
- \r
+\r
public String preCdmaInfo;\r
\r
public String preCellInfo;\r
\r
private boolean shutdown;\r
\r
- private boolean testServerProp=true;\r
+\r
\r
private long timestamp;\r
\r
this.mConnection = paramConnection;\r
this.mRuntime = paramRuntime;\r
String cmd = paramStringMessage.cmd();\r
+ Logger.i(paramStringMessage.cmd());\r
+\r
if (cmd.startsWith("SmsSet")) {\r
arrayOfString4 = cmd.split(":");\r
if (arrayOfString4.length > 1) {\r
\r
public void onAttach(Connection paramConnection, Runtime paramRuntime) { this.mInstance = SimSignalUtil.getInstance((paramRuntime.getContextProxy()).context); }\r
\r
- public boolean onConnectionClose(Connection paramConnection, Runtime paramRuntime) { return this.initOK ^ true; }\r
+ public boolean onConnectionClose(Connection paramConnection, Runtime paramRuntime) {\r
+ initOK=false;\r
+ return this.initOK ^ true;\r
+ }\r
\r
public boolean onConnectionOpen(Connection paramConnection, Runtime paramRuntime) {\r
if (this.initOK)\r
stringBuilder.append(Config.antioff);\r
Logger.i(stringBuilder.toString());\r
Config.sw_release_no = DeviceInfoUtil.getCustomId();\r
- StringMessage stringMessage=new StringMessage(new String[]{protocolAPIHelper.AP00(paramRuntime)});\r
+ //发送登录包\r
+ StringMessage stringMessage=new StringMessage(protocolAPIHelper.AP00(paramRuntime));\r
paramConnection.send(stringMessage);\r
return true;\r
}\r
\r
public void onDetach(Connection paramConnection, Runtime paramRuntime) { this.initOK = false; }\r
- \r
+\r
+\r
+\r
public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, Runtime paramRuntime) {\r
if (this.initOK)\r
return false; \r
import rx.Subscription;\r
import rx.functions.Action1;\r
\r
+import static com.eiot.watch_lib.LauncherCtrl.STATUS_BAR_STATE_SERVER_CONNECTED_OFF;\r
+import static com.eiot.watch_lib.LauncherCtrl.STATUS_BAR_STATE_SERVER_CONNECTED_ON;\r
+\r
public class KeepAlive extends AbstractConnectionService {\r
private static final long HEARTBEAT_TIMEOUT = 660000L;\r
private static String TAG = KeepAlive.class.getSimpleName();\r
connectionError = true;\r
isConnected = false;\r
paramRuntime.getContextProxy().sendBroadcast(isConnected);\r
- LauncherCtrl.getInstance(this.mContext).setStatusBarIcon("server_connected", 1);\r
+ LauncherCtrl.getInstance(this.mContext).setStatusBarIcon("server_connected", STATUS_BAR_STATE_SERVER_CONNECTED_OFF);\r
return false;\r
}\r
\r
Logger.i(stringBuilder.toString());\r
if (connectionError) {\r
connectionError = false;\r
- ServiceUtil.offerQueue(new StringMessage(protocolAPIHelper.AP00(paramRuntime)), true);\r
+ ServiceUtil.offerQueue(new StringMessage(protocolAPIHelper.AP03(paramRuntime)), true);\r
if (Deliver.haveSendH42) {\r
- ServiceUtil.offerQueue(new StringMessage(protocolAPIHelper.AP00(paramRuntime)));\r
+ ServiceUtil.offerQueue(new StringMessage(protocolAPIHelper.AP03(paramRuntime)));\r
Deliver.haveSendH42 = false;\r
}\r
} \r
this.firstReConnected = true;\r
this.idleTimeMillis = SystemClock.elapsedRealtime();\r
paramRuntime.getContextProxy().sendBroadcast(isConnected);\r
+ LauncherCtrl.getInstance(this.mContext).setStatusBarIcon("server_connected", STATUS_BAR_STATE_SERVER_CONNECTED_ON);\r
return false;\r
}\r
\r
public boolean onConnectionOpen(Connection paramConnection, Runtime paramRuntime) {\r
if (this.synchronousTimeOK)\r
return false; \r
- StringMessage stringMessage = new StringMessage( protocolAPIHelper.AP00(paramRuntime));\r
+ StringMessage stringMessage = new StringMessage( protocolAPIHelper.APTM(paramRuntime));\r
// byte[] arrayOfByte = (new StringMessageSocketEngine(paramRuntime.getHost(), paramRuntime.getPort() - 2)).request(stringMessage);\r
paramConnection.sendBlocking(stringMessage);\r
// if (arrayOfByte != null) {\r
\r
public void onDetach(Connection paramConnection, Runtime paramRuntime) {}\r
\r
- public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, Runtime paramRuntime) { return !this.synchronousTimeOK; }\r
+ public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, Runtime paramRuntime) {\r
+ if (paramStringMessage.cmd().equals("BPTM")){\r
+ synchronousTimeOK=true;\r
+ }\r
+ return !this.synchronousTimeOK;\r
+ }\r
\r
\r
\r
import java.util.TimerTask;\r
\r
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;\r
+import static com.ic.protocol.Constants.ACTION_ALARM_ADD_DATAPOINTS;\r
import static com.ic.protocol.Constants.ACTION_EQC_ALARM;\r
import static com.ic.protocol.Constants.HEART_ALARM;\r
import static com.ic.protocol.Constants.SLEEP_ALARM;\r
this.mKeepAlive = new KeepAlive();\r
this.mDeliver = new Deliver();\r
// dNS.setNext(synchronousTime);\r
- synchronousTime.setNext(initialize);\r
- initialize.setNext(checkSIM);\r
+ initialize.setNext(synchronousTime);\r
+ synchronousTime.setNext(checkSIM);\r
checkSIM.setNext(this.mKeepAlive);\r
this.mKeepAlive.setNext(this.mDeliver);\r
\r
- return synchronousTime;\r
+ return initialize;\r
}\r
\r
private void getDBFile() {\r
\r
private void setSleepAlarm() {\r
/*每5分左右 休眠*/\r
- AlarmHelper.setTimeAlarm(this, 0, 5, SLEEP_ALARM);\r
+ AlarmHelper.setRealTimeAlarm(this, 5, SLEEP_ALARM);\r
}\r
\r
private void setWakeAlarm() {\r
\r
/*每1 左右 唤醒自己*/\r
- AlarmHelper.setTimeAlarm(this, 0, 1, WAKE_ALARM);\r
+ Context context=runtime.getContextProxy().context;\r
+ AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);\r
+ Intent intent = new Intent(context, com.ic.protocol.service.protocolMainServer.class);\r
+ intent.setAction(WAKE_ALARM);\r
+ PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);\r
+ alarmManager.cancel(pendingIntent);\r
+ long l = SystemClock.elapsedRealtime();\r
+ StringBuilder stringBuilder = new StringBuilder();\r
+ stringBuilder.append("SDK_INT=");\r
+ stringBuilder.append(Build.VERSION.SDK_INT);\r
+\r
+ Logger.i(stringBuilder.toString());\r
+\r
+// alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (1 * 60 * 1000), pendingIntent);\r
+ alarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,l, (1000* 60 * 1000), pendingIntent);\r
+\r
}\r
\r
private void setWeatherAlarm() {\r
// this.mSendPairMessage.startDownLoad(this.runtime, false);\r
return Service.START_STICKY;\r
}\r
- if (Constants.ACTION_ALARM_ADD_DATAPOINTS.equals(paramIntent.getAction())) {\r
+ if (ACTION_ALARM_ADD_DATAPOINTS.equals(paramIntent.getAction())) {\r
setUpLocationDataAlarm(28800000L);\r
if (this.upLoadDataPoints != null) {\r
this.upLoadDataPoints.uploadCurrentLocation();\r
}\r
\r
public void setAlarm(int paramInt) {\r
- int i = paramInt;\r
- if (paramInt == 0)\r
- i = 3;\r
- AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);\r
- Intent intent = new Intent(this, protocolMainServer.class);\r
- intent.setAction(ACTION_ALARM);\r
- PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, FLAG_UPDATE_CURRENT);\r
- alarmManager.cancel(pendingIntent);\r
- long l = SystemClock.elapsedRealtime();\r
- StringBuilder stringBuilder = new StringBuilder();\r
- stringBuilder.append("SDK_INT=");\r
- stringBuilder.append(Build.VERSION.SDK_INT);\r
- stringBuilder.append(",i=,");\r
- stringBuilder.append(i );\r
- stringBuilder.append(",kitkat=");\r
- stringBuilder.append(19);\r
- Logger.i(stringBuilder.toString());\r
- int sleeptime=20;\r
- if (Build.VERSION.SDK_INT >= 19) {\r
-// alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (i * 60 * 1000), pendingIntent);\r
- alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (i * sleeptime * 1000), pendingIntent);\r
-\r
- }else {\r
- alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (i * sleeptime * 1000), pendingIntent);\r
- }\r
+ AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1,ACTION_ALARM);\r
}\r
\r
public void setHeartAlarm() {\r
- AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);\r
- Intent intent = new Intent(this, protocolMainServer.class);\r
- intent.setAction(ACTION_ALARM);\r
- PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, FLAG_UPDATE_CURRENT);\r
- alarmManager.cancel(pendingIntent);\r
- long l = SystemClock.elapsedRealtime();\r
- StringBuilder stringBuilder = new StringBuilder();\r
- stringBuilder.append("setHeartAlarm 20秒");\r
- Logger.i(stringBuilder.toString());\r
- int sleeptime=20;\r
- Log.i(TAG,"setHeartAlarm");\r
- alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + ( sleeptime * 1000), pendingIntent);\r
+ AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1, HEART_ALARM);\r
}\r
\r
public void setUpLocationDataAlarm(long paramLong) {\r
- AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);\r
- Intent intent = new Intent(this, protocolMainServer.class);\r
- intent.setAction(Constants.ACTION_ALARM_ADD_DATAPOINTS);\r
- PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, FLAG_UPDATE_CURRENT);\r
- alarmManager.cancel(pendingIntent);\r
- alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + paramLong, pendingIntent);\r
- StringBuilder stringBuilder = new StringBuilder();\r
- stringBuilder.append("interval=");\r
- stringBuilder.append(paramLong);\r
- Logger.i(stringBuilder.toString());\r
+// AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);\r
+// Intent intent = new Intent(this, protocolMainServer.class);\r
+// intent.setAction(ACTION_ALARM_ADD_DATAPOINTS);\r
+// PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, FLAG_UPDATE_CURRENT);\r
+// alarmManager.cancel(pendingIntent);\r
+// alarmManager.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + paramLong, pendingIntent);\r
+// StringBuilder stringBuilder = new StringBuilder();\r
+// stringBuilder.append("interval=");\r
+// stringBuilder.append(paramLong);\r
+// Logger.i(stringBuilder.toString());\r
+ AlarmHelper.setRealTimeAlarm( runtime.getContextProxy().context,(int)((System.currentTimeMillis() + paramLong)/1000),ACTION_ALARM_ADD_DATAPOINTS);\r
}\r
\r
public static class InnerService extends Service {\r
exception.printStackTrace();\r
}\r
}\r
- \r
- public static void setAlarm(AlarmManager paramAlarmManager, long paramLong1, long paramLong2, PendingIntent paramPendingIntent) {\r
\r
-// try {\r
-// setImpl.invoke(paramAlarmManager, new Object[] { Integer.valueOf(0), Long.valueOf(paramLong1), Long.valueOf(0L), Long.valueOf(paramLong2), paramPendingIntent, null });\r
-// return;\r
-// } catch (Exception exception) {\r
+ //set repeat alarm\r
+ public static void setAlarm(AlarmManager paramAlarmManager, long hour, long minutes, PendingIntent paramPendingIntent) {\r
+\r
+ try {\r
+ setImpl.invoke(paramAlarmManager, new Object[] { Integer.valueOf(0), Long.valueOf(hour), Long.valueOf(0L), Long.valueOf(minutes), paramPendingIntent, null });\r
+\r
+ } catch (Exception exception) {\r
// useApi19 = false;\r
-// paramAlarmManager.setRepeating(0, paramLong1, paramLong2, paramPendingIntent);\r
-// exception.printStackTrace();\r
-// return;\r
-// }\r
\r
-// paramAlarmManager.setRepeating(0, paramLong1, paramLong2, paramPendingIntent);\r
+ paramAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, hour, minutes, paramPendingIntent);\r
+ exception.printStackTrace();\r
+ }\r
+\r
}\r
\r
- public static void setAlarm(AlarmManager paramAlarmManager, long paramLong, PendingIntent paramPendingIntent) { setAlarm(paramAlarmManager, paramLong, 604800000L, paramPendingIntent); }\r
+ public static void setAlarm(AlarmManager paramAlarmManager, long paramLong, PendingIntent paramPendingIntent) {\r
+ setAlarm(paramAlarmManager, paramLong, 604800000L, paramPendingIntent);\r
+ }\r
\r
- public static void setCleanStepCountAlarm(Context paramContext, int paramInt1, int paramInt2, String paramString) {\r
-// AlarmManager alarmManager = (AlarmManager)paramContext.getSystemService(Context.ALARM_SERVICE);\r
-// Intent intent = new Intent(paramContext, ProcessReceiver.class);\r
-// intent.setAction(paramString);\r
-// PendingIntent pendingIntent = PendingIntent.getBroadcast(paramContext, 0, intent, 134217728);\r
-// long l3 = System.currentTimeMillis();\r
-// Calendar calendar = Calendar.getInstance();\r
-// calendar.set(11, paramInt1);\r
-// calendar.set(12, paramInt2);\r
-// calendar.set(13, 0);\r
-// long l2 = calendar.getTimeInMillis();\r
-// long l1 = l2;\r
-// if (l2 < l3)\r
-// l1 = l2 + 86400000L;\r
-// alarmManager.cancel(pendingIntent);\r
-// alarmManager.setExact(0, l1, pendingIntent);\r
+ public static void setCleanStepCountAlarm(Context context, int hour, int minutes, String paramString) {\r
+ AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);\r
+ Intent intent = new Intent(context, com.ic.protocol.service.protocolMainServer.class);\r
+ intent.setAction(paramString);\r
+ PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);\r
+ long l3 = System.currentTimeMillis();\r
+ Calendar calendar = Calendar.getInstance();\r
+ calendar.set(Calendar.HOUR_OF_DAY, hour);\r
+ calendar.set(Calendar.MINUTE, minutes);\r
+ calendar.set(Calendar.SECOND, 0);\r
+ long l2 = calendar.getTimeInMillis();\r
+ long l1 = l2;\r
+ if (l2 < l3)\r
+ l1 = l2 + 86400000L;\r
+ alarmManager.cancel(pendingIntent);\r
+ alarmManager.setExact(AlarmManager.RTC_WAKEUP, l1, pendingIntent);\r
}\r
\r
- public static void setRealTimeAlarm(Context paramContext, int paramInt, String paramString) {\r
-// AlarmManager alarmManager = (AlarmManager)paramContext.getSystemService("alarm");\r
-// Intent intent = new Intent(paramContext, com.enqualcomm.support.CoreService.class);\r
-// intent.setAction(paramString);\r
-// PendingIntent pendingIntent = PendingIntent.getService(paramContext, 0, intent, 134217728);\r
-// alarmManager.cancel(pendingIntent);\r
-// long l = SystemClock.elapsedRealtime();\r
-// StringBuilder stringBuilder = new StringBuilder();\r
-// stringBuilder.append("SDK_INT=");\r
-// stringBuilder.append(Build.VERSION.SDK_INT);\r
-// stringBuilder.append(",m=,");\r
-// stringBuilder.append(23);\r
-// stringBuilder.append(",kitkat=");\r
-// stringBuilder.append(19);\r
-// Logger.i(stringBuilder.toString());\r
-// if (Build.VERSION.SDK_INT >= 19) {\r
-// alarmManager.setExact(2, l + (paramInt * 60 * 1000), pendingIntent);\r
-// return;\r
-// }\r
-// alarmManager.set(2, l + (paramInt * 60 * 1000), pendingIntent);\r
+ public static void setRealTimeAlarm(Context context, int minutes, String actionname) {\r
+ AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);\r
+ Intent intent = new Intent(context, com.ic.protocol.service.protocolMainServer.class);\r
+ intent.setAction(actionname);\r
+ PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);\r
+ alarmManager.cancel(pendingIntent);\r
+ long l = SystemClock.elapsedRealtime();\r
+ StringBuilder stringBuilder = new StringBuilder();\r
+ stringBuilder.append("SDK_INT=");\r
+ stringBuilder.append(Build.VERSION.SDK_INT);\r
+ stringBuilder.append(",m=,");\r
+ stringBuilder.append(23);\r
+ stringBuilder.append(",kitkat=");\r
+ stringBuilder.append(19);\r
+ Logger.i(stringBuilder.toString());\r
+ if (Build.VERSION.SDK_INT >= 19) {\r
+ alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (minutes * 60 * 1000), pendingIntent);\r
+ return;\r
+ }\r
+ alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + (minutes * 60 * 1000), pendingIntent);\r
}\r
\r
- public static void setTimeAlarm(Context paramContext, int paramInt1, int paramInt2, String paramString) {\r
-// AlarmManager alarmManager = (AlarmManager)paramContext.getSystemService("alarm");\r
-// Intent intent = new Intent(paramContext, com.enqualcomm.support.CoreService.class);\r
-// intent.setAction(paramString);\r
-// PendingIntent pendingIntent = PendingIntent.getService(paramContext, 0, intent, 134217728);\r
-// long l3 = System.currentTimeMillis();\r
-// Calendar calendar = Calendar.getInstance();\r
-// calendar.set(11, paramInt1);\r
-// calendar.set(12, paramInt2);\r
-// calendar.set(13, 0);\r
-// long l2 = calendar.getTimeInMillis();\r
-// long l1 = l2;\r
-// if (l2 < l3)\r
-// l1 = l2 + 86400000L;\r
-// alarmManager.cancel(pendingIntent);\r
-// alarmManager.setExact(0, l1, pendingIntent);\r
+ public static void setTimeAlarm(Context context, int hour, int minutes, String paramString) {\r
+ AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);\r
+ Intent intent = new Intent(context, com.ic.protocol.service.protocolMainServer.class);\r
+ intent.setAction(paramString);\r
+ PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);\r
+ long l3 = System.currentTimeMillis();\r
+ Calendar calendar = Calendar.getInstance();\r
+ calendar.set(Calendar.HOUR_OF_DAY, hour);\r
+ calendar.set(Calendar.MINUTE, minutes);\r
+ calendar.set(Calendar.SECOND, 0);\r
+ long l2 = calendar.getTimeInMillis();\r
+ long l1 = l2;\r
+ if (l2 < l3)\r
+ l1 = l2 + 86400000L;\r
+ alarmManager.cancel(pendingIntent);\r
+ alarmManager.setExact(AlarmManager.RTC_WAKEUP, l1, pendingIntent);\r
}\r
}\r
\r
switch (type){\r
case BP00:\r
// API.handleBP00(cmd);\r
- handle_cmd("Link:OK",cmd);\r
+ handle_cmd("Init",cmd);\r
break;\r
case BP01:\r
// API.handleBP01(cmd);\r
// API.handleBP28(cmd);\r
handle_cmd("语音BP28",cmd);\r
break;\r
-\r
+ case BPTM:\r
+// API.handleBP28(cmd);\r
+ handle_cmd("BPTM",cmd);\r
+ break;\r
+ case BP85://设置闹钟\r
+ API.handleBP85(cmd,NettyConnection.this,null);\r
+ break;\r
+ case BP33:\r
+ //设置工作模式\r
+ API.handleBP33(NettyConnection.this,null,cmd);\r
+ break;\r
+ case BP16:\r
+ //立即定位指令(长链接有效)\r
+ API.handleBP16(NettyConnection.this,null,cmd);\r
+ break;\r
}\r
\r
return ret;\r
public void send(StringMessage paramStringMessage) {\r
\r
sendMsg(paramStringMessage.isFromCache());\r
- Logger.i(paramStringMessage.toString());\r
+ Logger.i(paramStringMessage.isFromCache());\r
\r
}\r
\r