private String lastTestTime;\r
private int lastBPH;\r
private int lastBPL;\r
- private int lastSpo2=0;\r
-\r
- private int BPH_ref=0;\r
- private int BPL_ref=0;\r
- private int Age=0;\r
- private int Sex=0;\r
- private int sp02_adjust=0;\r
- private int ppg_adjust=0;\r
- private int bph_adjust=0;\r
- private int bpl_adjust=0;\r
-\r
- public int ppg_threshold_max=0;\r
- public int ppg_threshold_min=0;\r
- public int bph_threshold_max=0;\r
- public int bph_threshold_min=0;\r
- public int bpl_threshold_max=0;\r
- public int bpl_threshold_min=0;\r
-\r
- public void setXY_Ref(int refBPH,int refBPL,int refSex,int refAge){\r
- BPH_ref=refBPH;\r
- BPL_ref=refBPL;\r
- Age=refAge;\r
- Sex=refSex;\r
+ private int lastSpo2 = 0;\r
+\r
+ private int BPH_ref = 0;\r
+ private int BPL_ref = 0;\r
+ private int Age = 0;\r
+ private int Sex = 0;\r
+ private int sp02_adjust = 0;\r
+ private int ppg_adjust = 0;\r
+ private int bph_adjust = 0;\r
+ private int bpl_adjust = 0;\r
+\r
+ public int ppg_threshold_max = 0;\r
+ public int ppg_threshold_min = 0;\r
+ public int bph_threshold_max = 0;\r
+ public int bph_threshold_min = 0;\r
+ public int bpl_threshold_max = 0;\r
+ public int bpl_threshold_min = 0;\r
+\r
+ public void setXY_Ref(int refBPH, int refBPL, int refSex, int refAge) {\r
+ BPH_ref = refBPH;\r
+ BPL_ref = refBPL;\r
+ Age = refAge;\r
+ Sex = refSex;\r
}\r
\r
- public void setAdjust(int _ppg_adjust,int _bph_adjust,int _bpl_adjust ,int _sp02_adjust){\r
- ppg_adjust=_ppg_adjust;\r
- bph_adjust=_bph_adjust;\r
- bpl_adjust=_bpl_adjust;\r
- sp02_adjust=_sp02_adjust;\r
+ public void setAdjust(int _ppg_adjust, int _bph_adjust, int _bpl_adjust, int _sp02_adjust) {\r
+ ppg_adjust = _ppg_adjust;\r
+ bph_adjust = _bph_adjust;\r
+ bpl_adjust = _bpl_adjust;\r
+ sp02_adjust = _sp02_adjust;\r
}\r
\r
\r
private HEARTRATE_WORKINGSTAT currentStat;\r
+\r
public enum HEARTRATE_WORKINGSTAT {\r
HEARTRATE_CLOSED,\r
HEARTRATE_OPEN,\r
HEARTRATE_WARED_AND_TESTING,\r
HEARTRATE_TEST_SUCCESS,\r
HEARTRATE_TEST_FAILED,\r
- } ;\r
+ }\r
+\r
+ ;\r
\r
- public boolean isHeartrRateExists(){\r
- return ICJniUtils.isPPGavailable()==1;\r
+ public boolean isHeartrRateExists() {\r
+ return ICJniUtils.isPPGavailable() == 1;\r
}\r
\r
- public HEARTRATE_WORKINGSTAT getHeartrateWorkingStat(){\r
+ public HEARTRATE_WORKINGSTAT getHeartrateWorkingStat() {\r
\r
return currentStat;\r
}\r
\r
- public void setHeartrateStat(HEARTRATE_WORKINGSTAT stat){\r
+ public void setHeartrateStat(HEARTRATE_WORKINGSTAT stat) {\r
\r
currentStat = stat;\r
}\r
- public int getPPG(){\r
- int ppg=lastHeartrate;\r
- if(ppg_adjust!=0)\r
- ppg+=ppg_adjust;\r
+\r
+ public int getPPG() {\r
+ int ppg = lastHeartrate;\r
+ if (ppg_adjust != 0)\r
+ ppg += ppg_adjust;\r
return ppg;\r
}\r
\r
public int getBPH() {\r
- int BPH=lastBPH;\r
- if (BPH_ref>=35 && BPH_ref<200) {\r
+ int BPH = lastBPH;\r
+ if (BPH_ref >= 35 && BPH_ref < 200) {\r
if (lastBPH > BPH_ref + 20)\r
BPH = BPH_ref + 20;\r
if (lastBPH < BPH_ref - 20)\r
BPH = BPH_ref - 20;\r
}\r
\r
- if (bph_adjust!=0){\r
- BPH+=bph_adjust;\r
+ if (bph_adjust != 0) {\r
+ BPH += bph_adjust;\r
}\r
return BPH;\r
}\r
+\r
public int getBPL() {\r
- int BPL=lastBPL;\r
- if(BPL_ref>=35 && BPL_ref<200) {\r
+ int BPL = lastBPL;\r
+ if (BPL_ref >= 35 && BPL_ref < 200) {\r
if (lastBPL > BPL_ref + 20)\r
BPL = BPL_ref + 20;\r
if (lastBPL < BPL_ref - 20)\r
BPL = BPL_ref - 20;\r
}\r
\r
- if (bpl_adjust!=0){\r
- BPL+=bpl_adjust;\r
+ if (bpl_adjust != 0) {\r
+ BPL += bpl_adjust;\r
}\r
return BPL;\r
}\r
\r
\r
- public int getSpo2(){\r
- int sp02=lastSpo2;\r
- if (sp02_adjust!=0)\r
- sp02+=sp02_adjust;\r
+ public int getSpo2() {\r
+ int sp02 = lastSpo2;\r
+ if (sp02_adjust != 0)\r
+ sp02 += sp02_adjust;\r
return sp02;\r
}\r
\r
\r
- public String getTestTime(){\r
+ public String getTestTime() {\r
return lastTestTime;\r
}\r
- public void setLastTestTime(String testtime){\r
- lastTestTime=testtime;\r
+\r
+ public void setLastTestTime(String testtime) {\r
+ lastTestTime = testtime;\r
}\r
\r
\r
- public void setLastHeartrate(int value,int bph,int bpl){\r
- lastHeartrate=value;\r
- lastBPH=bph;\r
- lastBPL=bpl;\r
+ public void setLastHeartrate(int value, int bph, int bpl) {\r
+ lastHeartrate = value;\r
+ lastBPH = bph;\r
+ lastBPL = bpl;\r
}\r
\r
- public void setLastHeartrate(int value,int bph,int bpl,int sp02){\r
- lastHeartrate=value;\r
- lastBPH=bph;\r
- lastBPL=bpl;\r
- lastSpo2=sp02;\r
+ public void setLastHeartrate(int value, int bph, int bpl, int sp02) {\r
+ lastHeartrate = value;\r
+ lastBPH = bph;\r
+ lastBPL = bpl;\r
+ lastSpo2 = sp02;\r
}\r
\r
-//心率低阀值,低于该阀值上传心率,如果未设置,则留空\r
+ //心率低阀值,低于该阀值上传心率,如果未设置,则留空\r
//心率高阀值,高于该阀值上传心率,如果未设置,则留空\r
//低压阀值,低压低于该阀值上传血压,如果未设置,则留空\r
//低压阀值,低压高于该阀值上传血压,如果未设置,则留空\r
//高压阀值,高压低于该阀值上传血压,如果未设置,则留空\r
//高压阀值,高压高于该阀值上传血压,如果未设置,则留空\r
- public void setWarningThreshold(int _ppg_threshold_max,int _ppg_threshold_min,int _bph_threshold_max,int _bph_threshold_min,int _bpl_threshold_max,int _bpl_threshold_min){\r
- ppg_threshold_max=_ppg_threshold_max;\r
- ppg_threshold_min=_ppg_threshold_min;\r
- bph_threshold_max=_bph_threshold_max;\r
- bph_threshold_min=_bph_threshold_min;\r
- bpl_threshold_max=_bpl_threshold_max;\r
- bpl_threshold_min=_bpl_threshold_min;\r
+ public void setWarningThreshold(int _ppg_threshold_max, int _ppg_threshold_min, int _bph_threshold_max, int _bph_threshold_min, int _bpl_threshold_max, int _bpl_threshold_min) {\r
+ ppg_threshold_max = _ppg_threshold_max;\r
+ ppg_threshold_min = _ppg_threshold_min;\r
+ bph_threshold_max = _bph_threshold_max;\r
+ bph_threshold_min = _bph_threshold_min;\r
+ bpl_threshold_max = _bpl_threshold_max;\r
+ bpl_threshold_min = _bpl_threshold_min;\r
}\r
}\r
private static boolean wifiEnabled;\r
\r
public static Runnable delaySendMSG;\r
- private static Handler mSendMSGHandler = new Handler(new Handler.Callback() {\r
- @Override\r
- public boolean handleMessage(Message message) {\r
- return false;\r
- }\r
- });\r
+ private static Handler mSendMSGHandler = new Handler(message -> false);\r
\r
static {\r
delaySendMSG = new Runnable() {\r
@Override\r
public void run() {\r
- if (getAndSendMsgFromQueue() == true) {\r
+ if (getAndSendMsgFromQueue()) {\r
mSendMSGHandler.postDelayed(delaySendMSG, 5000L);\r
}\r
}\r
import static com.enqualcomm.support.Constants.key_spo2;\r
\r
public class HeartRateManager extends AbstractInvokeHandlerService implements SensorEventListener {\r
- private int mNetworkType;\r
+ private static final String TAG = "HeartRateManager";\r
+ private int mNetworkType;\r
\r
- private SimSignalUtil mSignalUtil;\r
+ private SimSignalUtil mSignalUtil;\r
\r
- private Runtime runtime;\r
- private NettyConnection connection;\r
+ private Runtime runtime;\r
+ private NettyConnection connection;\r
\r
- private ScheduledThreadPoolExecutor timerPPG=null;\r
- private static Handler mHandler=null;\r
+ private ScheduledThreadPoolExecutor timerPPG = null;\r
+ private static Handler mHandler = null;\r
\r
- private void checkWarning(){\r
- //ppg\r
- if(runtime.getHRS().ppg_threshold_max>0 && runtime.getHRS().getPPG() >runtime.getHRS().ppg_threshold_max){\r
+ private void checkWarning() {\r
+ //ppg\r
+ if (runtime.getHRS().ppg_threshold_max > 0 && runtime.getHRS().getPPG() > runtime.getHRS().ppg_threshold_max) {\r
\r
- runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH);\r
- //trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH);\r
+ //trigger AP10 报警定位\r
+ CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
\r
- }else if ( runtime.getHRS().ppg_threshold_min>0 && runtime.getHRS().getPPG()<runtime.getHRS().ppg_threshold_min) {\r
- runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW);\r
- //trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
- }\r
+ } else if (runtime.getHRS().ppg_threshold_min > 0 && runtime.getHRS().getPPG() < runtime.getHRS().ppg_threshold_min) {\r
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW);\r
+ //trigger AP10 报警定位\r
+ CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ }\r
+\r
+ //bph\r
+ if (runtime.getHRS().bph_threshold_max > 0 && runtime.getHRS().getBPH() > runtime.getHRS().bph_threshold_max) {\r
+\r
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH);\r
+ //trigger AP10 报警定位\r
+ CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+\r
+ } else if (runtime.getHRS().bph_threshold_min > 0 && runtime.getHRS().getBPH() < runtime.getHRS().bph_threshold_min) {\r
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW);\r
+ //trigger AP10 报警定位\r
+ CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
\r
- //bph\r
- if(runtime.getHRS().bph_threshold_max>0 && runtime.getHRS().getBPH() >runtime.getHRS().bph_threshold_max){\r
+ }\r
+\r
+ //bpl\r
+ if (runtime.getHRS().bpl_threshold_max > 0 && runtime.getHRS().getBPL() > runtime.getHRS().bpl_threshold_max) {\r
\r
- runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH);\r
- //trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH);\r
+ //trigger AP10 报警定位\r
+ CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
\r
- }else if ( runtime.getHRS().bph_threshold_min>0 && runtime.getHRS().getBPH()<runtime.getHRS().bph_threshold_min) {\r
- runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW);\r
- //trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ } else if (runtime.getHRS().bpl_threshold_min > 0 && runtime.getHRS().getBPL() < runtime.getHRS().bpl_threshold_min) {\r
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW);\r
+ //trigger AP10 报警定位\r
+ CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
\r
+ }\r
}\r
\r
- //bpl\r
- if(runtime.getHRS().bpl_threshold_max>0 && runtime.getHRS().getBPL() >runtime.getHRS().bpl_threshold_max){\r
+ public HeartRateManager(Runtime _runtime, NettyConnection _connection) {\r
+ runtime = _runtime;\r
+ connection = _connection;\r
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;\r
+ isTimerStarted = false;\r
+ mSensorManager = (SensorManager) runtime.getContextProxy().context.getSystemService(SENSOR_SERVICE);\r
+ mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);\r
+\r
+ mHandler = new Handler(message -> {\r
+\r
+ switch (message.what) {\r
+ case 100: {\r
+ ICLogger.log(TAG, "start send heart rate...");\r
+ //只有检测PPG成功,且网络连接中才发送数据\r
+ if (runtime.getHRS().getHeartrateWorkingStat() ==\r
+ heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {\r
+ runtime.getHRS().setLastTestTime(TimeUtil.getSystemTime3());\r
+ String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(runtime);\r
+ sendBroadcastPPGResult();\r
+ //因为协议中没有时间变量,所以只能实时传输,如果恰巧没有网络也只能丢弃,有时间变量的话,可以考虑通过deliver的buffer来进行缓存发送\r
+ if (connection.isServerConnected()) {\r
+ if (PPGDATA.isEmpty()) {\r
+ String ppgd = protocolAPIHelper.getPPG_MSG(runtime.getHRS().getPPG());\r
+ String bloodd = protocolAPIHelper.getBlood_MSG(runtime.getHRS().getBPH(), runtime.getHRS().getBPL());\r
+ String oxd = protocolAPIHelper.getOxygen_MSG(runtime.getHRS().getSpo2());\r
+ connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
+ connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
+ connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
+ checkWarning();\r
+ } else {\r
+ connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
+ ICLogger.log(TAG, "Send PPG " + PPGDATA);\r
+ checkWarning();\r
+ }\r
+ ICLogger.log(TAG, "Send PPG " + PPGDATA);\r
+ } else {\r
+ ICLogger.log(TAG, "Skip PPG " + PPGDATA);\r
+ }\r
+ } else {\r
+ ICLogger.log(TAG, "PPG Failed for Timeout!");\r
+ }\r
+ stopPPG();\r
+ }\r
+ break;\r
+ case 200: {\r
+ startPPG();\r
+ }\r
+ break;\r
+ case 300: {\r
+ stopPPG();\r
+ }\r
+ break;\r
+ }\r
+ return false;\r
+ });\r
\r
- runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH);\r
- //trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ }\r
\r
- }else if ( runtime.getHRS().bpl_threshold_min>0 && runtime.getHRS().getBPL()<runtime.getHRS().bpl_threshold_min) {\r
- runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW);\r
- //trigger AP10 报警定位\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
+ private BroadcastReceiver PPGStartReceiver = new BroadcastReceiver() {\r
+ public void onReceive(Context param1Context, Intent param1Intent) {\r
+ if (ACTION_HEATR_RATE_START.equals(param1Intent.getAction())) {\r
+\r
+ //此消息来源于BroadCaset,收到开始测试的消息。\r
+ //此时需要重置HeartRateDetect Timer\r
+ //倘若有 参数 PPGTestCycle,则根据这个数值进行设置\r
+ int ppgtestCycle = param1Intent.getIntExtra("PPGTestCycle", -1);\r
+ if (ppgtestCycle > 0) {\r
+ Config.setPPGTestCycle(runtime.getContextProxy().context, ppgtestCycle);\r
+ runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context));\r
+ ICLogger.i("get and set PPGTestCycle " + ppgtestCycle);\r
+ }\r
+ CoreService.getInstance().setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
+ HeartRateManager.this.startPPG();\r
+ }\r
\r
+\r
+ }\r
+ };\r
+\r
+ private void sendBroadcastPPGResult() {\r
+ Intent intent = new Intent(ACTION_BROADCAST_PPG);\r
+ intent.putExtra("ppg", runtime.getHRS().getPPG());\r
+ intent.putExtra("bph", runtime.getHRS().getBPH());\r
+ intent.putExtra("bpl", runtime.getHRS().getBPL());\r
+ intent.putExtra("spo2", runtime.getHRS().getSpo2());\r
+ intent.putExtra("time", runtime.getHRS().getTestTime());\r
+ runtime.getContextProxy().context.sendBroadcast(intent);\r
}\r
- }\r
- public HeartRateManager(Runtime _runtime,NettyConnection _connection){\r
- runtime=_runtime;\r
- connection=_connection;\r
- currentStat= heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;\r
- isTimerStarted=false;\r
- mSensorManager = (SensorManager) runtime.getContextProxy().context.getSystemService(SENSOR_SERVICE);\r
- mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);\r
-\r
- mHandler=new Handler(new Handler.Callback() {\r
- @Override\r
- public boolean handleMessage(Message message) {\r
\r
- switch (message.what) {\r
- case 100: {\r
- //只有检测PPG成功,且网络连接中才发送数据\r
- if (runtime.getHRS().getHeartrateWorkingStat() == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {\r
- runtime.getHRS().setLastTestTime(TimeUtil.getSystemTime3());\r
- String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(runtime);\r
- sendBroadcastPPGResult();\r
- //因为协议中没有时间变量,所以只能实时传输,如果恰巧没有网络也只能丢弃,有时间变量的话,可以考虑通过deliver的buffer来进行缓存发送\r
- if (connection.isServerConnected()) {\r
- if(PPGDATA.isEmpty()){\r
- String ppgd=protocolAPIHelper.getPPG_MSG(runtime.getHRS().getPPG());\r
- String bloodd=protocolAPIHelper.getBlood_MSG( runtime.getHRS().getBPH(), runtime.getHRS().getBPL());\r
- String oxd=protocolAPIHelper.getOxygen_MSG(runtime.getHRS().getSpo2());\r
- connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
- connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
- connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
-\r
- checkWarning();\r
-\r
- }else {\r
- connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
- ICLogger.i("Send PPG " + PPGDATA);\r
- checkWarning();\r
+ public void regReceiver() {\r
+ //注册“网络变化”的广播接收器\r
+ IntentFilter intentFilter = new IntentFilter();\r
+ intentFilter.addAction(ACTION_HEATR_RATE_START);\r
+ runtime.getContextProxy().context.registerReceiver(PPGStartReceiver, intentFilter);\r
+ }\r
+\r
+ public void unRegReceiver() {\r
+ runtime.getContextProxy().context.unregisterReceiver(PPGStartReceiver);\r
+ }\r
+\r
+ private SensorManager mSensorManager;\r
+ private Sensor mHeartRate;\r
+ int PPG;\r
+ int BPH;\r
+ int BPL;\r
+ int SPo2;\r
+ boolean isWared;\r
+ boolean isPPGTesting;\r
+ static boolean isTimerStarted;\r
+ static heartRateStatus.HEARTRATE_WORKINGSTAT currentStat;\r
+ static int delayCount;\r
+ static int testCount;\r
+ static int notWaredCount;\r
+ private final int MAX_TESTTIMES = 30000;//最大延迟测试时间为30秒\r
+\r
+\r
+ public void doPPGtest() {\r
+ int hrsType = ICJniUtils.isPPGavailable();\r
+ if (hrsType > 0 && hrsType != ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
+ PPG = ICJniUtils.getPPG();//调用底层函数保证状态更新。\r
+ BPH = ICJniUtils.getHighBloodPressure();\r
+ BPL = ICJniUtils.getLowBloodPressure();\r
+ SPo2 = ICJniUtils.getSPO2();\r
+ isWared = (ICJniUtils.isWeared() == 1);\r
+ isPPGTesting = (ICJniUtils.isPPGStarted() == 1);\r
+ } else {\r
+ isPPGTesting = true;\r
+ }\r
+ ICLogger.i("PPG TESTING=" + isPPGTesting + ", isWared=" + isWared + ", PPG=" + PPG + ", BPH=" + BPH + ", BPL=" + BPL + ", SPo2=" + SPo2);\r
+ if (isPPGTesting) {\r
+ if (isWared) {\r
+ if (PPG > 0) {\r
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS;\r
+ } else {\r
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_WARED_AND_TESTING;\r
}\r
- ICLogger.i("Send PPG " + PPGDATA);\r
- } else {\r
- ICLogger.i("Skip PPG " + PPGDATA);\r
- }\r
} else {\r
- ICLogger.i("PPG Failed for Timeout!");\r
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED;\r
}\r
- stopPPG();\r
- }\r
- break;\r
- case 200: {\r
- startPPG();\r
- }\r
- break;\r
- case 300: {\r
- stopPPG();\r
- }\r
- break;\r
+ } else {\r
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;\r
}\r
- return false;\r
- }\r
- });\r
-\r
- }\r
-\r
- private BroadcastReceiver PPGStartReceiver = new BroadcastReceiver() {\r
- public void onReceive(Context param1Context, Intent param1Intent) {\r
- if (ACTION_HEATR_RATE_START.equals(param1Intent.getAction())) {\r
-\r
- //此消息来源于BroadCaset,收到开始测试的消息。\r
- //此时需要重置HeartRateDetect Timer\r
- //倘若有 参数 PPGTestCycle,则根据这个数值进行设置\r
- int ppgtestCycle=param1Intent.getIntExtra("PPGTestCycle",-1);\r
- if (ppgtestCycle >0){\r
- Config.setPPGTestCycle(runtime.getContextProxy().context,ppgtestCycle);\r
- runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context));\r
- ICLogger.i("get and set PPGTestCycle "+ppgtestCycle);\r
+\r
+\r
+ if (currentStat == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED) {\r
+ notWaredCount--;\r
+ if (notWaredCount < 0) { //没有佩戴次数到限制后,停止检测\r
+ ICLogger.i("HEARTRATE_NOTWARED 超过时限,取消检测报告!");\r
+ stopPPG();\r
+ }\r
}\r
- CoreService.getInstance().setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
- HeartRateManager.this.startPPG();\r
- }\r
\r
+ if (currentStat == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {\r
+ runtime.getHRS().setLastHeartrate(PPG, BPH, BPL, SPo2);\r
+ delayCount--;\r
+ if (delayCount < 0) //达到延迟时间后,停止检测并发送数据\r
+ sendAndStopPPG();\r
\r
- }\r
- };\r
-\r
- private void sendBroadcastPPGResult(){\r
- Intent intent=new Intent(ACTION_BROADCAST_PPG);\r
- intent.putExtra("ppg",runtime.getHRS().getPPG());\r
- intent.putExtra("bph",runtime.getHRS().getBPH());\r
- intent.putExtra("bpl",runtime.getHRS().getBPL());\r
- intent.putExtra("spo2",runtime.getHRS().getSpo2());\r
- intent.putExtra("time",runtime.getHRS().getTestTime());\r
- runtime.getContextProxy().context.sendBroadcast(intent);\r
- }\r
- public void regReceiver(){\r
- //注册“网络变化”的广播接收器\r
- IntentFilter intentFilter = new IntentFilter();\r
- intentFilter.addAction(ACTION_HEATR_RATE_START);\r
- runtime.getContextProxy().context.registerReceiver(PPGStartReceiver, intentFilter);\r
- }\r
-\r
- public void unRegReceiver(){\r
- runtime.getContextProxy().context.unregisterReceiver(PPGStartReceiver);\r
- }\r
- private SensorManager mSensorManager;\r
- private Sensor mHeartRate;\r
- int PPG;\r
- int BPH;\r
- int BPL;\r
- int SPo2;\r
- boolean isWared ;\r
- boolean isPPGTesting ;\r
- static boolean isTimerStarted;\r
- static heartRateStatus.HEARTRATE_WORKINGSTAT currentStat;\r
- static int delayCount;\r
- static int testCount;\r
- static int notWaredCount;\r
- private final int MAX_TESTTIMES=30000;//最大延迟测试时间为30秒\r
-\r
-\r
- public void doPPGtest(){\r
-\r
- int hrsType=ICJniUtils.isPPGavailable();\r
- if (hrsType>0 && hrsType != ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
- PPG = ICJniUtils.getPPG();//调用底层函数保证状态更新。\r
- BPH = ICJniUtils.getHighBloodPressure();\r
- BPL = ICJniUtils.getLowBloodPressure();\r
- SPo2 = ICJniUtils.getSPO2();\r
- isWared = (ICJniUtils.isWeared() == 1);\r
- isPPGTesting = (ICJniUtils.isPPGStarted() == 1);\r
- }else{\r
- isPPGTesting=true;\r
- }\r
- ICLogger.i("PPG TESTING="+isPPGTesting+", isWared="+isWared+", PPG="+PPG+", BPH="+BPH+", BPL="+BPL+", SPo2="+SPo2);\r
- if (isPPGTesting){\r
- if (isWared ) {\r
- if (PPG > 0) {\r
- currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS;\r
} else {\r
- currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_WARED_AND_TESTING;\r
+ runtime.getHRS().setLastHeartrate(0, 0, 0, 0);\r
+ }\r
+ runtime.getHRS().setHeartrateStat(currentStat);\r
+\r
+\r
+ testCount--;\r
+ if (testCount < 0) {\r
+ ICLogger.i("PPG 超过 " + MAX_TESTTIMES + "秒 未能得出结果,取消检测报告!");\r
+ stopPPG();\r
}\r
- }else{\r
- currentStat= heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED;\r
- }\r
- }else{\r
- currentStat= heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;\r
- }\r
\r
+ }\r
\r
- if (currentStat== heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED){\r
- notWaredCount--;\r
- if( notWaredCount <0){ //没有佩戴次数到限制后,停止检测\r
- ICLogger.i("HEARTRATE_NOTWARED 超过时限,取消检测报告!");\r
- stopPPG();\r
- }\r
+ private void sendAndStopPPG() {\r
+ //结束和发送数据\r
+ mHandler.sendEmptyMessage(100);\r
}\r
\r
- if (currentStat==heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS){\r
- runtime.getHRS().setLastHeartrate(PPG,BPH,BPL,SPo2);\r
- delayCount--;\r
- if (delayCount<0) //达到延迟时间后,停止检测并发送数据\r
- sendAndStopPPG();\r
+ PowerManager.WakeLock mWakeLock = null;\r
\r
- }else{\r
- runtime.getHRS().setLastHeartrate(0,0,0,0);\r
+ public PowerManager.WakeLock getPPGWakeLock() {\r
+ mWakeLock = ((PowerManager) (runtime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, HeartRateManager.class.getSimpleName());\r
+ mWakeLock.acquire(30000L);\r
+ return mWakeLock;\r
}\r
- runtime.getHRS().setHeartrateStat(currentStat);\r
\r
+ public void releaseWakeLock() {\r
+ if (mWakeLock != null && mWakeLock.isHeld()) {\r
+ mWakeLock.release();\r
+ }\r
+ mWakeLock = null;\r
+ }\r
\r
+ public void startPPG() {\r
\r
+ int hrsType = ICJniUtils.isPPGavailable();\r
+ if (hrsType > 0 && (isTimerStarted == false)) {\r
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_OPEN;\r
+ delayCount = 4;//检测成功后4秒发送数据\r
+ notWaredCount = 5; //初始化没有佩戴的检测次数5,连续5秒没有佩戴则取消检测\r
+ testCount = MAX_TESTTIMES;//测试MAX_TESTTIMES后没有结果也要强制退出\r
+ isTimerStarted = true;\r
+ getPPGWakeLock();\r
+ if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
\r
- testCount--;\r
- if (testCount<0)\r
- {\r
- ICLogger.i("PPG 超过 "+MAX_TESTTIMES+"秒 未能得出结果,取消检测报告!");\r
- stopPPG();\r
- }\r
+ boolean ret = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_UI);\r
+ ICLogger.i("Heart Rate PPG_EGC_TYPE_IC66 opened ret :: " + ret);\r
\r
- }\r
-\r
- private void sendAndStopPPG(){\r
- //结束和发送数据\r
- mHandler.sendEmptyMessage(100);\r
- }\r
- PowerManager.WakeLock mWakeLock=null;\r
- public PowerManager.WakeLock getPPGWakeLock() {\r
- mWakeLock = ((PowerManager)(runtime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, HeartRateManager.class.getSimpleName());\r
- mWakeLock.acquire(30000L);\r
- return mWakeLock;\r
- }\r
-\r
- public void releaseWakeLock(){\r
- if (mWakeLock!=null && mWakeLock.isHeld()){\r
- mWakeLock.release();\r
- }\r
- mWakeLock=null;\r
- }\r
- public void startPPG(){\r
-\r
- int hrsType=ICJniUtils.isPPGavailable();\r
- if ( hrsType > 0 && (isTimerStarted == false) ) {\r
- currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_OPEN;\r
- delayCount = 4;//检测成功后4秒发送数据\r
- notWaredCount = 5; //初始化没有佩戴的检测次数5,连续5秒没有佩戴则取消检测\r
- testCount = MAX_TESTTIMES;//测试MAX_TESTTIMES后没有结果也要强制退出\r
- isTimerStarted = true;\r
- getPPGWakeLock();\r
- if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
-\r
- boolean ret = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_UI);\r
- ICLogger.i( "Heart Rate PPG_EGC_TYPE_IC66 opened ret :: " + ret);\r
-\r
- } else {\r
-\r
- ICJniUtils.enablePPG();\r
- timerPPG = new ScheduledThreadPoolExecutor(10);\r
- timerPPG.scheduleAtFixedRate(new Runnable() {\r
- @Override\r
- public void run() {\r
- doPPGtest();\r
- }\r
- }, 0, 1000, TimeUnit.MILLISECONDS); //1 秒更新一次数据\r
-\r
- }\r
- }\r
- }\r
-\r
- public void stopPPG(){\r
- if( isTimerStarted )\r
- {\r
-\r
- int hrsType=ICJniUtils.isPPGavailable();\r
- if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
- mSensorManager.unregisterListener(this);\r
- ICLogger.i( "Heart Rate PPG_EGC_TYPE_IC66 closed");\r
- }else {\r
- timerPPG.shutdownNow();\r
- timerPPG.purge();\r
- ICJniUtils.disablePPG();\r
- }\r
- isTimerStarted=false;\r
+ } else {\r
+\r
+ ICJniUtils.enablePPG();\r
+ timerPPG = new ScheduledThreadPoolExecutor(10);\r
+ timerPPG.scheduleAtFixedRate(new Runnable() {\r
+ @Override\r
+ public void run() {\r
+ doPPGtest();\r
+ }\r
+ }, 0, 1000, TimeUnit.MILLISECONDS); //1 秒更新一次数据\r
+\r
+ }\r
+ }\r
}\r
\r
- releaseWakeLock();\r
- }\r
+ public void stopPPG() {\r
+ if (isTimerStarted) {\r
\r
- private void callback(Messenger paramMessenger, int paramInt) {\r
- if (paramMessenger != null)\r
- try {\r
- paramMessenger.send(Message.obtain(null, paramInt));\r
- return;\r
- } catch (Exception e) {\r
- e.printStackTrace();\r
- }\r
- }\r
+ int hrsType = ICJniUtils.isPPGavailable();\r
+ if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {\r
+ mSensorManager.unregisterListener(this);\r
+ ICLogger.i("Heart Rate PPG_EGC_TYPE_IC66 closed");\r
+ } else {\r
+ timerPPG.shutdownNow();\r
+ timerPPG.purge();\r
+ ICJniUtils.disablePPG();\r
+ }\r
+ isTimerStarted = false;\r
+ }\r
\r
+ releaseWakeLock();\r
+ }\r
+\r
+ private void callback(Messenger paramMessenger, int paramInt) {\r
+ if (paramMessenger != null)\r
+ try {\r
+ paramMessenger.send(Message.obtain(null, paramInt));\r
+ return;\r
+ } catch (Exception e) {\r
+ e.printStackTrace();\r
+ }\r
+ }\r
\r
\r
- public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {}\r
+ public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {\r
+ }\r
\r
- public void onAttach(Connection paramConnection, Runtime paramRuntime) {\r
+ public void onAttach(Connection paramConnection, Runtime paramRuntime) {\r
\r
// this.mSignalUtil = SimSignalUtil.getInstance((paramRuntime.getContextProxy()).context);\r
- regReceiver();\r
- }\r
+ regReceiver();\r
+ }\r
\r
- public void onDetach(Connection paramConnection, Runtime paramRuntime) {\r
- unRegReceiver();\r
- }\r
+ public void onDetach(Connection paramConnection, Runtime paramRuntime) {\r
+ unRegReceiver();\r
+ }\r
\r
- public boolean onUserRequest(Intent paramIntent, Connection paramConnection, final Runtime runtime) {\r
- String str = paramIntent.getAction();\r
- if (ACTION_HEATR_RATE_START.equals(str)) {\r
+ public boolean onUserRequest(Intent paramIntent, Connection paramConnection, final Runtime runtime) {\r
+ String str = paramIntent.getAction();\r
+ if (ACTION_HEATR_RATE_START.equals(str)) {\r
// this.mSignalUtil = SimSignalUtil.getInstance((runtime.getContextProxy()).context);\r
// str = paramIntent.getStringExtra("filepath");\r
// String str1 = paramIntent.getStringExtra("number");\r
- StringBuilder stringBuilder = new StringBuilder();\r
- stringBuilder.append("PPG Started on Action "+ACTION_HEATR_RATE_START);\r
+ StringBuilder stringBuilder = new StringBuilder();\r
+ stringBuilder.append("PPG Started on Action " + ACTION_HEATR_RATE_START);\r
// stringBuilder.append(str);\r
// stringBuilder.append("number == ");\r
// stringBuilder.append(str1);\r
- ICLogger.i(stringBuilder.toString());\r
- //do something\r
- startPPG();\r
+ ICLogger.i(stringBuilder.toString());\r
+ //do something\r
+ startPPG();\r
+ }\r
+ return false;\r
}\r
- return false;\r
- }\r
\r
-public static void triggerPPGtest(){\r
- if (mHandler !=null) mHandler.sendEmptyMessage(200);\r
-}\r
+ public static void triggerPPGtest() {\r
+ if (mHandler != null) mHandler.sendEmptyMessage(200);\r
+ }\r
\r
\r
+ public boolean onUserRequest(Message message, Connection connection, final Runtime runtime) {\r
\r
- public boolean onUserRequest(Message message, Connection connection, final Runtime runtime) {\r
\r
+ int i = 1;\r
+ switch (message.what) {\r
+ case MSG_WHAT_PPG:\r
\r
- int i = 1;\r
- switch (message.what) {\r
- case MSG_WHAT_PPG:\r
+ //接收UI测试后的结果,直接发送到服务器。\r
+ Bundle bundle3 = message.getData();\r
+ String ppg = bundle3.getString(key_ppg);\r
+ String bph = bundle3.getString(key_bph);\r
+ String bpl = bundle3.getString(key_bpl);\r
+ String spo2 = bundle3.getString(key_spo2);\r
\r
- //接收UI测试后的结果,直接发送到服务器。\r
- Bundle bundle3 = message.getData();\r
- String ppg = bundle3.getString(key_ppg);\r
- String bph = bundle3.getString(key_bph);\r
- String bpl = bundle3.getString(key_bpl);\r
- String spo2 = bundle3.getString(key_spo2);\r
+ ICLogger.i("get MSG_WHAT_PPG ppg " + ppg + " , bph " + bph + " , bpl " + bpl + " , spo2 " + spo2);\r
+ if (ppg == null || bph == null || bpl == null || ppg.isEmpty() || bph.isEmpty() || bpl.isEmpty()) {\r
+ ICLogger.i("MSG_WHAT_PPG Data is null or empty ! Skip!");\r
+ callback(message.replyTo, Constants.RESULT_ERROR);\r
\r
- ICLogger.i("get MSG_WHAT_PPG ppg "+ppg + " , bph "+bph + " , bpl "+bpl + " , spo2 "+spo2);\r
- if (ppg == null || bph == null || bpl==null ||ppg.isEmpty()||bph.isEmpty()||bpl.isEmpty()) {\r
- ICLogger.i("MSG_WHAT_PPG Data is null or empty ! Skip!");\r
- callback(message.replyTo, Constants.RESULT_ERROR);\r
+ return true;\r
+ }\r
+ if (spo2 == null || (spo2 != null && Integer.parseInt(spo2) <= 0)) {\r
+ Random r = new Random();\r
+ int randomint = r.nextInt(98 - 95) + 95;\r
+ spo2 = String.valueOf(randomint);\r
+ }\r
+\r
+\r
+ if (((NettyConnection) connection).isServerConnected()) {\r
+ String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2));\r
+ if (PPGDATA.isEmpty()) {\r
+ String ppgd = protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg));\r
+ String bloodd = protocolAPIHelper.getBlood_MSG(Integer.parseInt(bph), Integer.parseInt(bpl));\r
+ String oxd = protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2));\r
+ connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
+ connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
+ connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
+\r
+ } else {\r
+ connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
+ ICLogger.i("Send PPG " + PPGDATA);\r
+ }\r
+ } else {\r
+ ICLogger.i("Skip PPG ");\r
+ }\r
+\r
+ callback(message.replyTo, Constants.RESULT_OK);\r
\r
- return true;\r
+ default:\r
+ break;\r
}\r
- if (spo2==null || (spo2!=null && Integer.parseInt(spo2 )<=0) ){\r
- Random r = new Random();\r
- int randomint = r.nextInt(98 - 95) + 95;\r
- spo2=String.valueOf(randomint);\r
- }\r
-\r
-\r
- if (((NettyConnection) connection).isServerConnected()) {\r
- String PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2));\r
- if(PPGDATA.isEmpty()){\r
- String ppgd=protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg));\r
- String bloodd=protocolAPIHelper.getBlood_MSG( Integer.parseInt(bph), Integer.parseInt(bpl));\r
- String oxd=protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2));\r
- connection.send(protocolAPIHelper.genStringMessage("ppg", ppgd));\r
- connection.send(protocolAPIHelper.genStringMessage("blood", bloodd));\r
- connection.send(protocolAPIHelper.genStringMessage("oxygen", oxd));\r
-\r
- }else {\r
- connection.send(protocolAPIHelper.genStringMessage("APHT", PPGDATA));\r
- ICLogger.i("Send PPG " + PPGDATA);\r
- }\r
- } else {\r
- ICLogger.i("Skip PPG ");\r
- }\r
\r
- callback(message.replyTo, Constants.RESULT_OK);\r
+ return true;\r
+ }\r
\r
- default:\r
- break;\r
+ @Override\r
+ public void onSensorChanged(SensorEvent sensorEvent) {\r
+ float values[] = sensorEvent.values;\r
+ int length = values.length;\r
+ ICLogger.i("onSensorChanged() is called " + length\r
+ + " PPG = " + values[0]\r
+ + ", BPH = " + values[1]\r
+ + ", BPL = " + values[2]\r
+ + ", spo2 = " + values[3]\r
+ + " , Weared = " + values[4]\r
+ );\r
+ PPG = (int) values[0];//调用底层函数保证状态更新。\r
+ BPH = (int) values[1];\r
+ BPL = (int) values[2];\r
+ SPo2 = (int) values[3];\r
+ isWared = ((int) values[4] == 2);\r
+ isPPGTesting = true;// (ICJniUtils.isPPGStarted() == 1);\r
+ doPPGtest();\r
+ /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/\r
}\r
\r
- return true;\r
- }\r
-\r
- @Override\r
- public void onSensorChanged(SensorEvent sensorEvent) {\r
- float values[]=sensorEvent.values;\r
- int length = values.length;\r
- ICLogger.i( "onSensorChanged() is called "+length\r
- +" PPG = "+values[0]\r
- +", BPH = "+values[1]\r
- +", BPL = "+values[2]\r
- +", spo2 = "+values[3]\r
- +" , Weared = "+values[4]\r
- );\r
- PPG = (int)values[0];//调用底层函数保证状态更新。\r
- BPH = (int)values[1];\r
- BPL = (int)values[2];\r
- SPo2 = (int)values[3];\r
- isWared = ((int)values[4] == 2);\r
- isPPGTesting = true;// (ICJniUtils.isPPGStarted() == 1);\r
- doPPGtest();\r
- /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/\r
- }\r
-\r
- @Override\r
- public void onAccuracyChanged(Sensor sensor, int i) {\r
- ICLogger.i("onAccuracyChanged() is called "+sensor.getName()+" accuracy="+i);\r
- }\r
+ @Override\r
+ public void onAccuracyChanged(Sensor sensor, int i) {\r
+ ICLogger.i("onAccuracyChanged() is called " + sensor.getName() + " accuracy=" + i);\r
+ }\r
}\r
\r
if (!onUserRequest(paramIntent, paramConnection, paramRuntime) && this.nextService != null)\r
this.nextService.processUserRequest(paramIntent, paramConnection, paramRuntime); \r
}\r
- \r
+\r
public final void processUserRequest(Message paramMessage, Connection paramConnection, Runtime paramRuntime) {\r
if (!onUserRequest(paramMessage, paramConnection, paramRuntime) && this.nextService != null)\r
this.nextService.processUserRequest(paramMessage, paramConnection, paramRuntime); \r
import com.enqualcomm.support.bean.Runtime;\r
\r
public class NettyConnection implements Connection {\r
- private static long realtime_old;\r
- private static final String TAG = NettyConnection.class.getSimpleName();\r
-\r
- ExecutorService executorService = Executors.newSingleThreadExecutor();\r
-\r
- private protocolAPIHelper API=null;\r
- private ConnectionListener listener=null;\r
- \r
- private int timeout = 60;\r
- \r
- public NettyConnection(ConnectionListener paramConnectionListener,Runtime runtime) {\r
- this.listener = paramConnectionListener;\r
-\r
- if (API == null) API=new protocolAPIHelper(NettyConnection.this,runtime );\r
-\r
- initReadListener();\r
- init_connection_listener();\r
- }\r
- \r
- private void connectImpl(String host, int port) {\r
- connectServer(host,port);\r
- }\r
- \r
- public void close() {\r
+ private static long realtime_old;\r
+ private static final String TAG = NettyConnection.class.getSimpleName();\r
+\r
+ ExecutorService executorService = Executors.newSingleThreadExecutor();\r
+\r
+ private protocolAPIHelper API = null;\r
+ private ConnectionListener listener = null;\r
+\r
+ private int timeout = 60;\r
+\r
+ public NettyConnection(ConnectionListener paramConnectionListener, Runtime runtime) {\r
+ this.listener = paramConnectionListener;\r
+\r
+ if (API == null) API = new protocolAPIHelper(NettyConnection.this, runtime);\r
+\r
+ initReadListener();\r
+ init_connection_listener();\r
+ }\r
+\r
+ private void connectImpl(String host, int port) {\r
+ connectServer(host, port);\r
+ }\r
+\r
+ public void close() {\r
// listener =null;\r
// RxSocket.getInstance().setConnectionListener(null);\r
- this.disconnect();\r
- }\r
- \r
- public void connect(final String host, final int port) {\r
- long l = SystemClock.elapsedRealtime();\r
- if (host.isEmpty()||host ==null){\r
- ICLogger.i("host name error "+host);\r
- return ;\r
- }\r
- if (l - realtime_old < 3000L ) {\r
- ICLogger.i("3秒内skip 重连!");\r
- return;\r
+ this.disconnect();\r
}\r
- realtime_old = l;\r
- ICLogger.i("connect1 "+host+":"+port);\r
+\r
+ public void connect(final String host, final int port) {\r
+ long l = SystemClock.elapsedRealtime();\r
+ if (host.isEmpty() || host == null) {\r
+ ICLogger.i("host name error " + host);\r
+ return;\r
+ }\r
+ if (l - realtime_old < 3000L) {\r
+ ICLogger.i("3秒内skip 重连!");\r
+ return;\r
+ }\r
+ realtime_old = l;\r
+ ICLogger.i("connect1 " + host + ":" + port);\r
// disconnect();\r
- this.executorService.execute(new Runnable() {\r
- public void run() {\r
- NettyConnection.this.connectImpl(host, port);\r
- ICLogger.i("connect2");\r
- }\r
+ this.executorService.execute(new Runnable() {\r
+ public void run() {\r
+ NettyConnection.this.connectImpl(host, port);\r
+ ICLogger.i("connect2");\r
+ }\r
});\r
- }\r
- \r
- public void disconnect() {\r
-\r
- disconnectServer();\r
- }\r
-\r
+ }\r
\r
- private boolean connectServer(String serverip,int serverport){\r
+ public void disconnect() {\r
\r
- //进行连接Socket:这里使用的是,在本地上开启了一个服务器。\r
+ disconnectServer();\r
+ }\r
\r
- RxSocket.getInstance().connectRx(serverip==null?"118.178.155.223":serverip,serverport)\r
- .subscribe(\r
- aBoolean -> {\r
- log("RxSocket Connect "+aBoolean);\r
- },\r
- throwable -> {\r
- log("RxSocket Connect Error : "+throwable.getMessage());\r
- },\r
- () -> {\r
- log("RxSocket Connect main");\r
\r
- }\r
- );\r
-\r
-\r
- return true;\r
- }\r
-\r
- public boolean disconnectServer(){\r
-\r
- log("Call disconnectServer");\r
- //断开连接\r
- RxSocket.getInstance().disConnect()\r
- .subscribe(\r
- aBoolean -> {\r
- log("RxSocket DisConnect "+aBoolean);\r
- },\r
- throwable -> {\r
- log("RxSocket DisConnect Error : "+throwable.getMessage());\r
- },\r
- () -> {\r
- log("RxSocket DisConnect main");\r
- }\r
- );\r
+ private boolean connectServer(String serverip, int serverport) {\r
\r
- return true;\r
- }\r
- private void log(String msg) {\r
- ICLogger.log(TAG,msg);\r
- }\r
+ //进行连接Socket:这里使用的是,在本地上开启了一个服务器。\r
\r
+ RxSocket.getInstance().connectRx(serverip == null ? "118.178.155.223" : serverip, serverport)\r
+ .subscribe(\r
+ aBoolean -> {\r
+ log("RxSocket Connect " + aBoolean);\r
+ },\r
+ throwable -> {\r
+ log("RxSocket Connect Error : " + throwable.getMessage());\r
+ },\r
+ () -> {\r
+ log("RxSocket Connect main");\r
\r
- public boolean isServerConnected(){\r
- return (RxSocket.getInstance().getSocketStatus()== CONNECTED)?true:false;\r
- }\r
+ }\r
+ );\r
\r
- public boolean sendMsg(String cmd) {\r
\r
- if( cmd==null || cmd.isEmpty())\r
- {\r
- return false;\r
+ return true;\r
}\r
\r
+ public boolean disconnectServer() {\r
\r
- if (!isServerConnected()){\r
-\r
- log("skiped"+cmd);\r
- if (Config.LOG_TOFILE) ICLogger.logToFile("APILog"," skiped " + cmd);\r
- return false;\r
- }else{\r
- log("send "+cmd);\r
- if (Config.LOG_TOFILE) ICLogger.logToFile("APILog"," sent " + cmd);\r
- //向RxSocket写数据\r
- //示例数据:IWAP00867155030001063#\r
- byte[] test = cmd.getBytes();\r
- ByteBuffer byteBuffer = ByteBuffer.wrap(test);\r
- RxSocket.getInstance().write(byteBuffer)\r
+ log("Call disconnectServer");\r
+ //断开连接\r
+ RxSocket.getInstance().disConnect()\r
.subscribe(\r
aBoolean -> {\r
- log("RxSocket write " + aBoolean);\r
+ log("RxSocket DisConnect " + aBoolean);\r
},\r
throwable -> {\r
- log("RxSocket write Error : " + throwable.getMessage());\r
+ log("RxSocket DisConnect Error : " + throwable.getMessage());\r
},\r
() -> {\r
- log("RxSocket write main ");\r
+ log("RxSocket DisConnect main");\r
}\r
);\r
\r
+ return true;\r
+ }\r
+\r
+ private void log(String msg) {\r
+ ICLogger.log(TAG, msg);\r
+ }\r
+\r
\r
+ public boolean isServerConnected() {\r
+ return (RxSocket.getInstance().getSocketStatus() == CONNECTED) ? true : false;\r
}\r
\r
- return true;\r
- }\r
- public boolean sendMsg(byte[] cmdArray) {\r
+ public boolean sendMsg(String cmd) {\r
\r
- if( cmdArray==null || cmdArray.length==0)\r
- {\r
+ if (cmd == null || cmd.isEmpty()) {\r
return false;\r
}\r
\r
\r
- if (!isServerConnected()){\r
+ if (!isServerConnected()) {\r
\r
- log("skipedBytes "+new String(cmdArray));\r
- if (Config.LOG_TOFILE)ICLogger.logToFile("APILog"," skiped " + new String(cmdArray));\r
+ log("skiped" + cmd);\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " skiped " + cmd);\r
return false;\r
- }else{\r
- log("sendBytes "+new String(cmdArray));\r
- if (Config.LOG_TOFILE) ICLogger.logToFile("APILog"," sentBytes " + new String(cmdArray));\r
+ } else {\r
+ log("send " + cmd);\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " sent " + cmd);\r
+ //向RxSocket写数据\r
+ //示例数据:IWAP00867155030001063#\r
+ byte[] test = cmd.getBytes();\r
+ ByteBuffer byteBuffer = ByteBuffer.wrap(test);\r
+ RxSocket.getInstance().write(byteBuffer)\r
+ .subscribe(\r
+ aBoolean -> {\r
+ log("RxSocket write " + aBoolean);\r
+ },\r
+ throwable -> {\r
+ log("RxSocket write Error : " + throwable.getMessage());\r
+ },\r
+ () -> {\r
+ log("RxSocket write main ");\r
+ }\r
+ );\r
+\r
+\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ public boolean sendMsg(byte[] cmdArray) {\r
+\r
+ if (cmdArray == null || cmdArray.length == 0) {\r
+ return false;\r
+ }\r
+\r
+\r
+ if (!isServerConnected()) {\r
+\r
+ log("skipedBytes " + new String(cmdArray));\r
+ if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " skiped " + new String(cmdArray));\r
+ return false;\r
+ } else {\r
+ log("sendBytes " + new String(cmdArray));\r
+ if (Config.LOG_TOFILE)\r
+ ICLogger.logToFile("APILog", " sentBytes " + new String(cmdArray));\r
//向RxSocket写数据\r
//示例数据:IWAP00867155030001063#\r
ByteBuffer byteBuffer = ByteBuffer.wrap(cmdArray);\r
\r
return true;\r
}\r
- public int getTimeout() { return this.timeout; }\r
\r
+ public int getTimeout() {\r
+ return this.timeout;\r
+ }\r
\r
- public void DeliverCMDMessageToSystem(String cmd,String msg){\r
- if (NettyConnection.this.listener!=null){\r
- String[] msgArr=new String[]{cmd,msg};\r
- StringMessage stringMessage=new StringMessage(msgArr);\r
- stringMessage.refresh(msg);\r
- NettyConnection.this.listener.onReceive(stringMessage );\r
- }\r
- }\r
\r
- private void initReadListener(){\r
- //监听Socket的收包\r
+ public void DeliverCMDMessageToSystem(String cmd, String msg) {\r
+ if (NettyConnection.this.listener != null) {\r
+ String[] msgArr = new String[]{cmd, msg};\r
+ StringMessage stringMessage = new StringMessage(msgArr);\r
+ stringMessage.refresh(msg);\r
+ NettyConnection.this.listener.onReceive(stringMessage);\r
+ }\r
+ }\r
+\r
+ private void initReadListener() {\r
+ //监听Socket的收包\r
// RxSocket.getInstance().read()\r
// .subscribeOn(Schedulers.newThread())\r
// .observeOn(AndroidSchedulers.mainThread())\r
// log("get Msg ()");\r
// }\r
// );\r
- RxSocket.getInstance().setSocketReadCallback(new RxSocket.SocketReadCallback() {\r
- @Override\r
- public void onRecvMsg(byte[] bytes) {\r
-\r
- Message msg=new Message();\r
- Bundle bdl=new Bundle();\r
- bdl.putByteArray("RecvData",bytes);\r
- msg.what=100;\r
- msg.setData(bdl);\r
- mHandler.sendMessage(msg);\r
- }\r
- });\r
-\r
-\r
- }\r
-\r
- private Handler mHandler=new Handler(new Handler.Callback() {\r
- @Override\r
- public boolean handleMessage(Message message) {\r
-\r
- if (message.what == 100){\r
- byte[] bytes=message.getData().getByteArray("RecvData");\r
- String msg= new String(bytes);\r
-\r
- log("get Msg :"+msg+" (size) byteslen" + bytes.length +" strlen"+ msg.length());\r
- API.parserCmd(bytes);\r
-\r
- }\r
- return false;\r
- }\r
- });\r
-\r
- private void init_connection_listener(){\r
-\r
- //监听Socket的连接状态\r
- RxSocket.getInstance().socketStatusListener()\r
- .subscribeOn(Schedulers.newThread())\r
- .observeOn(AndroidSchedulers.mainThread())\r
- .subscribe(socketStatus -> {\r
- log("socketStatusListener socketStatus:" + socketStatus.name());\r
- if (socketStatus.name().equals("CONNECTED")){\r
- if (NettyConnection.this.listener!=null){\r
- NettyConnection.this.listener.onConnectionOpen();\r
- }\r
- }else if (socketStatus.name().equals("DIS_CONNECT") || socketStatus.name().equals("DIS_CONNECT_BY_SERVERSIDE")) {\r
- if (NettyConnection.this.listener!=null){\r
- NettyConnection.this.listener.onConnectionClose(socketStatus.name());\r
- }\r
- disconnectServer();\r
- }\r
- });\r
- }\r
- public void open() {\r
-\r
-\r
- }\r
- \r
- public void send(StringMessage paramStringMessage) {\r
-\r
- sendMsg(paramStringMessage.isFromCache());\r
- ICLogger.logToFile("APILog",paramStringMessage.isFromCache());\r
- ICLogger.i(paramStringMessage.isFromCache());\r
-\r
- }\r
- \r
- public boolean sendBlocking(StringMessage paramStringMessage) {\r
- ICLogger.i(paramStringMessage.isFromCache());\r
- sendMsg(paramStringMessage.isFromCache());\r
- return true;\r
+ RxSocket.getInstance().setSocketReadCallback(new RxSocket.SocketReadCallback() {\r
+ @Override\r
+ public void onRecvMsg(byte[] bytes) {\r
+\r
+ Message msg = new Message();\r
+ Bundle bdl = new Bundle();\r
+ bdl.putByteArray("RecvData", bytes);\r
+ msg.what = 100;\r
+ msg.setData(bdl);\r
+ mHandler.sendMessage(msg);\r
+ }\r
+ });\r
+\r
+\r
+ }\r
+\r
+ private Handler mHandler = new Handler(new Handler.Callback() {\r
+ @Override\r
+ public boolean handleMessage(Message message) {\r
+\r
+ if (message.what == 100) {\r
+ byte[] bytes = message.getData().getByteArray("RecvData");\r
+ String msg = new String(bytes);\r
+\r
+ log("get Msg :" + msg + " (size) byteslen" + bytes.length + " strlen" + msg.length());\r
+ API.parserCmd(bytes);\r
+\r
+ }\r
+ return false;\r
+ }\r
+ });\r
+\r
+ private void init_connection_listener() {\r
+\r
+ //监听Socket的连接状态\r
+ RxSocket.getInstance().socketStatusListener()\r
+ .subscribeOn(Schedulers.newThread())\r
+ .observeOn(AndroidSchedulers.mainThread())\r
+ .subscribe(socketStatus -> {\r
+ log("socketStatusListener socketStatus:" + socketStatus.name());\r
+ if (socketStatus.name().equals("CONNECTED")) {\r
+ if (NettyConnection.this.listener != null) {\r
+ NettyConnection.this.listener.onConnectionOpen();\r
+ }\r
+ } else if (socketStatus.name().equals("DIS_CONNECT") || socketStatus.name().equals("DIS_CONNECT_BY_SERVERSIDE")) {\r
+ if (NettyConnection.this.listener != null) {\r
+ NettyConnection.this.listener.onConnectionClose(socketStatus.name());\r
+ }\r
+ disconnectServer();\r
+ }\r
+ });\r
+ }\r
+\r
+ public void open() {\r
+\r
+\r
+ }\r
+\r
+ public void send(StringMessage paramStringMessage) {\r
+\r
+ sendMsg(paramStringMessage.isFromCache());\r
+ ICLogger.logToFile("APILog", paramStringMessage.isFromCache());\r
+ ICLogger.i(paramStringMessage.isFromCache());\r
+\r
+ }\r
+\r
+ public boolean sendBlocking(StringMessage paramStringMessage) {\r
+ ICLogger.i(paramStringMessage.isFromCache());\r
+ sendMsg(paramStringMessage.isFromCache());\r
+ return true;\r
+ }\r
+\r
+ public void setTimeout(int paramInt) {\r
+ this.timeout = paramInt;\r
}\r
- \r
- public void setTimeout(int paramInt) { this.timeout = paramInt; }\r
\r
}\r
\r
import static com.enqualcomm.support.bean.Content.CONTACT_CATEGORY_GROUP;\r
\r
\r
-\r
public class ProcessReceiver extends BroadcastReceiver {\r
- private static final int MICRO_CHAT = 2;\r
- \r
- private static int last_app_id;\r
- \r
- private static String last_message_name;\r
- \r
- private static CustomDialog mCustomDialog;\r
- \r
- private CustomNotification mCustomNotification;\r
-\r
- private CustomDialog.Builder mDialog;\r
-\r
- private CustomNotification.Builder mNotificationDialog;\r
- \r
- private NotificationManager mNotificationManager;\r
- \r
- private Vibrator vibrator;\r
- \r
- private float x1 = 0.0F;\r
- \r
- private float x2 = 0.0F;\r
- \r
- private float y1 = 0.0F;\r
- \r
- private float y2 = 0.0F;\r
- \r
- private void initMyDialog(final Context context, final Contact contact, int app_id,String msg) {\r
- String var4 = contact==null?"SMS":contact.name;\r
-\r
- if (this.mDialog == null) {\r
- this.mDialog = new CustomDialog.Builder(context);\r
- }\r
+ private static final int MICRO_CHAT = 2;\r
\r
- StringBuilder var5 = new StringBuilder();\r
- var5.append("===mCustomDialog ")\r
- .append(mCustomDialog)\r
- .append(" , appid ").append(app_id);\r
+ private static int last_app_id;\r
\r
- ICLogger.i(var5.toString());\r
- if (mCustomDialog != null && mCustomDialog.isShowing() && last_message_name != null && var4 != null && last_message_name.equals(var4) && last_app_id == app_id) {\r
- mCustomDialog.dismiss();\r
- }\r
+ private static String last_message_name;\r
\r
- last_message_name = var4;\r
- last_app_id = app_id;\r
- CustomDialog.Builder tmpDialog;\r
- if (app_id == 1) {\r
- tmpDialog = this.mDialog.setTitle(context.getString(R.string.setting_title)).setApp(1);\r
- StringBuilder var6 = new StringBuilder();\r
- var6.append(context.getString(R.string.voiceMessage));\r
- var6.append(" ");\r
- var6.append(var4);\r
- var6.append(context.getString(R.string.voiceMessageEnd));\r
- mCustomDialog = tmpDialog.setMessage(var6.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
- public void onClick(DialogInterface var1x, int var2x) {\r
- var1x.dismiss();\r
- ComponentName var3 = new ComponentName("com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.chat.ChatActivity_");\r
- Intent var5 = new Intent("android.intent.action.MAIN");\r
- var5.putExtra("ACTIVITY_TYPE", 2);\r
- var5.putExtra("contact", contact);\r
- var5.addCategory("android.intent.category.DEFAULT");\r
- var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
- var5.setComponent(var3);\r
- VibrateUtil.getInstance(context).VibrateOn(false);\r
- try {\r
- context.startActivity(var5);\r
- } catch (Exception var4) {\r
- var4.printStackTrace();\r
- }\r
+ private static CustomDialog mCustomDialog;\r
\r
+ private CustomNotification mCustomNotification;\r
+\r
+ private CustomDialog.Builder mDialog;\r
+\r
+ private CustomNotification.Builder mNotificationDialog;\r
+\r
+ private NotificationManager mNotificationManager;\r
+\r
+ private Vibrator vibrator;\r
+\r
+ private float x1 = 0.0F;\r
+\r
+ private float x2 = 0.0F;\r
+\r
+ private float y1 = 0.0F;\r
+\r
+ private float y2 = 0.0F;\r
+\r
+ private void initMyDialog(final Context context, final Contact contact, int app_id, String msg) {\r
+ String var4 = contact == null ? "SMS" : contact.name;\r
+\r
+ if (this.mDialog == null) {\r
+ this.mDialog = new CustomDialog.Builder(context);\r
}\r
- }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
- public void onClick(DialogInterface var1, int var2) {\r
- var1.dismiss();\r
- VibrateUtil.getInstance(context).VibrateOn(false);\r
- }\r
- }).create();\r
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
- mCustomDialog.show();\r
- } else if (app_id == 2) {\r
- tmpDialog = this.mDialog.setTitle(context.getString(R.string.hht_misscall_call)).setApp(app_id);\r
- StringBuilder var7 = new StringBuilder();\r
- var7.append(context.getString(R.string.hht_call_start));\r
- var7.append(var4);\r
- var7.append(context.getString(R.string.hht_call_end));\r
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
- public void onClick(DialogInterface var1, int var2) {\r
- var1.dismiss();\r
- VibrateUtil.getInstance(context).VibrateOn(false);\r
- }\r
- }).create();\r
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
- mCustomDialog.show();\r
- }else if (app_id ==3){\r
- tmpDialog = this.mDialog.setTitle(context.getString(R.string.sms_title)).setApp(1);\r
- StringBuilder var7 = new StringBuilder();\r
- var7.append(context.getString(R.string.sms_notify));\r
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
- public void onClick(DialogInterface var1, int var2) {\r
- var1.dismiss();\r
- ComponentName var3 = new ComponentName("com.zmapp.sms", "com.zmapp.sms.MainActivity");\r
- Intent var5 = new Intent("android.intent.action.MAIN");\r
- var5.addCategory("android.intent.category.DEFAULT");\r
- var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
- var5.setComponent(var3);\r
- VibrateUtil.getInstance(context).VibrateOn(false);\r
- try {\r
- context.startActivity(var5);\r
- } catch (Exception var4) {\r
- var4.printStackTrace();\r
- }\r
- }\r
- }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
- public void onClick(DialogInterface var1, int var2) {\r
- var1.dismiss();\r
- VibrateUtil.getInstance(context).VibrateOn(false);\r
+\r
+ StringBuilder var5 = new StringBuilder();\r
+ var5.append("===mCustomDialog ")\r
+ .append(mCustomDialog)\r
+ .append(" , appid ").append(app_id);\r
+\r
+ ICLogger.i(var5.toString());\r
+ if (mCustomDialog != null && mCustomDialog.isShowing() && last_message_name != null && var4 != null && last_message_name.equals(var4) && last_app_id == app_id) {\r
+ mCustomDialog.dismiss();\r
}\r
- }).create();\r
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
- mCustomDialog.show();\r
- }else if (app_id ==4) {\r
- tmpDialog = this.mDialog.setTitle("WEB"+context.getString(R.string.sms_title)).setApp(1);\r
- StringBuilder var7 = new StringBuilder();\r
- var7.append(msg);\r
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
- public void onClick(DialogInterface var1, int var2) {\r
- var1.dismiss();\r
- VibrateUtil.getInstance(context).VibrateOn(false);\r
- if(CoreService.getInstance()!=null) {\r
- CoreService.getInstance().getConnection().send(protocolAPIHelper.getPushTxtReadFlagToSrvMSG());\r
- }\r
+\r
+ last_message_name = var4;\r
+ last_app_id = app_id;\r
+ CustomDialog.Builder tmpDialog;\r
+ if (app_id == 1) {\r
+ tmpDialog = this.mDialog.setTitle(context.getString(R.string.setting_title)).setApp(1);\r
+ StringBuilder var6 = new StringBuilder();\r
+ var6.append(context.getString(R.string.voiceMessage));\r
+ var6.append(" ");\r
+ var6.append(var4);\r
+ var6.append(context.getString(R.string.voiceMessageEnd));\r
+ mCustomDialog = tmpDialog.setMessage(var6.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface var1x, int var2x) {\r
+ var1x.dismiss();\r
+ ComponentName var3 = new ComponentName("com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.chat.ChatActivity_");\r
+ Intent var5 = new Intent("android.intent.action.MAIN");\r
+ var5.putExtra("ACTIVITY_TYPE", 2);\r
+ var5.putExtra("contact", contact);\r
+ var5.addCategory("android.intent.category.DEFAULT");\r
+ var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
+ var5.setComponent(var3);\r
+ VibrateUtil.getInstance(context).VibrateOn(false);\r
+ try {\r
+ context.startActivity(var5);\r
+ } catch (Exception var4) {\r
+ var4.printStackTrace();\r
+ }\r
+\r
+ }\r
+ }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface var1, int var2) {\r
+ var1.dismiss();\r
+ VibrateUtil.getInstance(context).VibrateOn(false);\r
+ }\r
+ }).create();\r
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+ mCustomDialog.show();\r
+ } else if (app_id == 2) {\r
+ tmpDialog = this.mDialog.setTitle(context.getString(R.string.hht_misscall_call)).setApp(app_id);\r
+ StringBuilder var7 = new StringBuilder();\r
+ var7.append(context.getString(R.string.hht_call_start));\r
+ var7.append(var4);\r
+ var7.append(context.getString(R.string.hht_call_end));\r
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface var1, int var2) {\r
+ var1.dismiss();\r
+ VibrateUtil.getInstance(context).VibrateOn(false);\r
+ }\r
+ }).create();\r
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+ mCustomDialog.show();\r
+ } else if (app_id == 3) {\r
+ tmpDialog = this.mDialog.setTitle(context.getString(R.string.sms_title)).setApp(1);\r
+ StringBuilder var7 = new StringBuilder();\r
+ var7.append(context.getString(R.string.sms_notify));\r
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface var1, int var2) {\r
+ var1.dismiss();\r
+ ComponentName var3 = new ComponentName("com.zmapp.sms", "com.zmapp.sms.MainActivity");\r
+ Intent var5 = new Intent("android.intent.action.MAIN");\r
+ var5.addCategory("android.intent.category.DEFAULT");\r
+ var5.addFlags(FLAG_ACTIVITY_NEW_TASK);\r
+ var5.setComponent(var3);\r
+ VibrateUtil.getInstance(context).VibrateOn(false);\r
+ try {\r
+ context.startActivity(var5);\r
+ } catch (Exception var4) {\r
+ var4.printStackTrace();\r
+ }\r
+ }\r
+ }).setNegativeButton("取消", new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface var1, int var2) {\r
+ var1.dismiss();\r
+ VibrateUtil.getInstance(context).VibrateOn(false);\r
+ }\r
+ }).create();\r
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+ mCustomDialog.show();\r
+ } else if (app_id == 4) {\r
+ tmpDialog = this.mDialog.setTitle("WEB" + context.getString(R.string.sms_title)).setApp(1);\r
+ StringBuilder var7 = new StringBuilder();\r
+ var7.append(msg);\r
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface var1, int var2) {\r
+ var1.dismiss();\r
+ VibrateUtil.getInstance(context).VibrateOn(false);\r
+ if (CoreService.getInstance() != null) {\r
+ CoreService.getInstance().getConnection().send(protocolAPIHelper.getPushTxtReadFlagToSrvMSG());\r
+ }\r
+ }\r
+ }).create();\r
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+ mCustomDialog.show();\r
+ } else if (app_id == 5) {\r
+ tmpDialog = this.mDialog.setTitle(context.getString(R.string.findDev)).setApp(1);\r
+ StringBuilder var7 = new StringBuilder();\r
+ var7.append(msg);\r
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
+ public void onClick(DialogInterface var1, int var2) {\r
+ var1.dismiss();\r
+ VibrateUtil.getInstance(context).VibrateOn(false);\r
+ stopmediaplayer();\r
+ }\r
+ }).create();\r
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
+ mCustomDialog.show();\r
}\r
- }).create();\r
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
- mCustomDialog.show();\r
- } else if (app_id ==5) {\r
- tmpDialog = this.mDialog.setTitle(context.getString(R.string.findDev)).setApp(1);\r
- StringBuilder var7 = new StringBuilder();\r
- var7.append(msg);\r
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton("确定", new DialogInterface.OnClickListener() {\r
- public void onClick(DialogInterface var1, int var2) {\r
- var1.dismiss();\r
- VibrateUtil.getInstance(context).VibrateOn(false);\r
- stopmediaplayer();\r
- }\r
- }).create();\r
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);\r
- mCustomDialog.show();\r
}\r
- }\r
- private void playFindDevVoice(Context context){\r
\r
- AudioService.getInstance().play(context.getAssets(), "Campus_Life.ogg");\r
+ private void playFindDevVoice(Context context) {\r
\r
- }\r
- private void stopmediaplayer(){\r
- AudioService.getInstance().stop();\r
- }\r
- private void playNotificationVoice(Context paramContext) {\r
- AudioService.getInstance().play(paramContext.getAssets(), "ring_msg.mp3");\r
- }\r
+ AudioService.getInstance().play(context.getAssets(), "Campus_Life.ogg");\r
\r
- private void playshutdownsound(Context paramContext) {\r
- AudioService.getInstance().play(paramContext.getAssets(), "shutdownsound.mp3");\r
- }\r
+ }\r
+\r
+ private void stopmediaplayer() {\r
+ AudioService.getInstance().stop();\r
+ }\r
+\r
+ private void playNotificationVoice(Context paramContext) {\r
+ AudioService.getInstance().play(paramContext.getAssets(), "ring_msg.mp3");\r
+ }\r
+\r
+ private void playshutdownsound(Context paramContext) {\r
+ AudioService.getInstance().play(paramContext.getAssets(), "shutdownsound.mp3");\r
+ }\r
\r
\r
- private void screenOn(Context paramContext) {\r
- final PowerManager.WakeLock wakelock = ((PowerManager)paramContext.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP| SCREEN_DIM_WAKE_LOCK, ProcessReceiver.class.getSimpleName());\r
- wakelock.acquire(5000);\r
+ private void screenOn(Context paramContext) {\r
+ final PowerManager.WakeLock wakelock = ((PowerManager) paramContext.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP | SCREEN_DIM_WAKE_LOCK, ProcessReceiver.class.getSimpleName());\r
+ wakelock.acquire(5000);\r
// Observable.timer(5000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
// public void call(Long param1Long) { wakelock.release(); }\r
// });\r
- }\r
-\r
- @Override\r
- public void onReceive(Context paramContext, Intent paramIntent) {\r
-\r
- boolean isSilence;\r
- Contact contact;\r
- String str = paramIntent.getAction();\r
- StringBuilder stringBuilder = new StringBuilder();\r
- stringBuilder.append("action==");\r
- stringBuilder.append(str);\r
- ICLogger.i(stringBuilder.toString());\r
-\r
- if (CoreService.getInstance()==null)\r
- {\r
- ICLogger.i("CoreService is null skip deal with this message! "+str);\r
- paramContext.startService(new Intent(paramContext,CoreService.class));// protocol service\r
- return ;\r
}\r
- if (RESUME_ACTION.equals(str)) {\r
- SharPreferenceUtil.setPrefBoolean(paramContext, "key_is_resume", paramIntent.getBooleanExtra("is_resume", false));\r
- return;\r
- }else if (ACTION_MESSAGE_SENT.equals(str)) {\r
-\r
- String msgType=paramIntent.getStringExtra(KEY_MESSAGE_TYPE);\r
- String msgFrom=paramIntent.getStringExtra(KEY_MESSAGE_FROM);\r
- String msgUrl=paramIntent.getStringExtra(KEY_MESSAGE_URL);\r
- ICLogger.i("receive msg to send type="+msgType+", msg from = "+msgFrom+", msgUrl"+msgUrl);\r
- if (msgFrom==null) msgFrom="123";\r
- /**\r
- * * 1 语音—— 1.监听语音 * 2.SOS语音 * 3.扩展\r
- * * 2 图片—— 1.签到图片 * 2.指令图片 * 3.设备图片 * 4.扩展\r
- */\r
- if (msgType.equals("voice"))\r
- {\r
- //创建voiceConent并添加到数据\r
- final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,1,3);\r
-\r
- // 把voiceContent拆解成1024的分包\r
- Util.parseToVoicePacketSent(voiceContent);\r
- //trigger 分包发送\r
- if (CoreService.getInstance().getConnection()!=null)\r
- CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
- }else if (msgType.equals("pic")){\r
- //创建voiceConent并添加到数据\r
- final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,2,3);\r
-\r
- // 把voiceContent拆解成1024的分包\r
- Util.parseToVoicePacketSent(voiceContent);\r
- //trigger 分包发送\r
- if (CoreService.getInstance().getConnection()!=null)\r
- CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
- }\r
- }else if (ACTION_SHUTDOWN.equals(str)) {\r
-\r
- playshutdownsound(paramContext);\r
-\r
- Util.shutdown();\r
- return;\r
- }else if (ACTION_PLAYTIME.equals(str)) {\r
- LedUtil.setBlueLedOn(true);\r
- new Handler().postDelayed(new Runnable() {\r
- @Override\r
- public void run() {\r
- LedUtil.setBlueLedOn(false);\r
- }\r
- },2000L);\r
- return;\r
- }else if (ACTION_REMOTE_CAMERA.equals(str)) {\r
- if (paramIntent.hasExtra("remote_number")){\r
- //接收拍照命令,执行拍照\r
- String str1 = paramIntent.getStringExtra("remote_number");\r
- new Handler().post(new Runnable() {\r
- @Override\r
- public void run() {\r
- (new CameraUtil(paramContext)).getPictur(str1);\r
- }\r
- });\r
- }else{\r
- //接收到拍照完毕命令,发送照片\r
- String msgFrom=paramIntent.getStringExtra("number");\r
- String msgUrl=paramIntent.getStringExtra("filepath");\r
- ICLogger.i("receive taken photo to send "+msgUrl);\r
- //创建voiceConent并添加到数据\r
- final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,2,2);\r
-\r
- // 把voiceContent拆解成1024的分包\r
- Util.parseToVoicePacketSent(voiceContent);\r
- //trigger 分包发送\r
- if (CoreService.getInstance().getConnection()!=null)\r
- CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
-\r
- }\r
-\r
-\r
- return;\r
-\r
- }else if (DIALOG_ACTION.equals(str)) {\r
- if (paramIntent.hasExtra("contact")) {\r
- contact = (Contact) paramIntent.getParcelableExtra("contact");\r
- SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
- isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
- if (contact != null && !isSilence) {\r
- if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
- this.initMyDialog(paramContext, contact, 1,"");\r
- this.playNotificationVoice(paramContext);\r
- VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+\r
+ @Override\r
+ public void onReceive(Context paramContext, Intent paramIntent) {\r
+\r
+ boolean isSilence;\r
+ Contact contact;\r
+ String str = paramIntent.getAction();\r
+ StringBuilder stringBuilder = new StringBuilder();\r
+ stringBuilder.append("action==");\r
+ stringBuilder.append(str);\r
+ ICLogger.i(stringBuilder.toString());\r
+\r
+ if (CoreService.getInstance() == null) {\r
+ ICLogger.i("CoreService is null skip deal with this message! " + str);\r
+ paramContext.startService(new Intent(paramContext, CoreService.class));// protocol service\r
+ return;\r
+ }\r
+ if (RESUME_ACTION.equals(str)) {\r
+ SharPreferenceUtil.setPrefBoolean(paramContext, "key_is_resume", paramIntent.getBooleanExtra("is_resume", false));\r
+ return;\r
+ } else if (ACTION_MESSAGE_SENT.equals(str)) {\r
+\r
+ String msgType = paramIntent.getStringExtra(KEY_MESSAGE_TYPE);\r
+ String msgFrom = paramIntent.getStringExtra(KEY_MESSAGE_FROM);\r
+ String msgUrl = paramIntent.getStringExtra(KEY_MESSAGE_URL);\r
+ ICLogger.i("receive msg to send type=" + msgType + ", msg from = " + msgFrom + ", msgUrl" + msgUrl);\r
+ if (msgFrom == null) msgFrom = "123";\r
+ /**\r
+ * * 1 语音—— 1.监听语音 * 2.SOS语音 * 3.扩展\r
+ * * 2 图片—— 1.签到图片 * 2.指令图片 * 3.设备图片 * 4.扩展\r
+ */\r
+ if (msgType.equals("voice")) {\r
+ //创建voiceConent并添加到数据\r
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl, 1, 3);\r
+\r
+ // 把voiceContent拆解成1024的分包\r
+ Util.parseToVoicePacketSent(voiceContent);\r
+ //trigger 分包发送\r
+ if (CoreService.getInstance().getConnection() != null)\r
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
+ } else if (msgType.equals("pic")) {\r
+ //创建voiceConent并添加到数据\r
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl, 2, 3);\r
+\r
+ // 把voiceContent拆解成1024的分包\r
+ Util.parseToVoicePacketSent(voiceContent);\r
+ //trigger 分包发送\r
+ if (CoreService.getInstance().getConnection() != null)\r
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
}\r
+ } else if (ACTION_SHUTDOWN.equals(str)) {\r
+\r
+ playshutdownsound(paramContext);\r
+\r
+ Util.shutdown();\r
+ return;\r
+ } else if (ACTION_PLAYTIME.equals(str)) {\r
+ LedUtil.setBlueLedOn(true);\r
+ new Handler().postDelayed(new Runnable() {\r
+ @Override\r
+ public void run() {\r
+ LedUtil.setBlueLedOn(false);\r
+ }\r
+ }, 2000L);\r
+ return;\r
+ } else if (ACTION_REMOTE_CAMERA.equals(str)) {\r
+ if (paramIntent.hasExtra("remote_number")) {\r
+ //接收拍照命令,执行拍照\r
+ String str1 = paramIntent.getStringExtra("remote_number");\r
+ new Handler().post(new Runnable() {\r
+ @Override\r
+ public void run() {\r
+ (new CameraUtil(paramContext)).getPictur(str1);\r
+ }\r
+ });\r
+ } else {\r
+ //接收到拍照完毕命令,发送照片\r
+ String msgFrom = paramIntent.getStringExtra("number");\r
+ String msgUrl = paramIntent.getStringExtra("filepath");\r
+ ICLogger.i("receive taken photo to send " + msgUrl);\r
+ //创建voiceConent并添加到数据\r
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl, 2, 2);\r
+\r
+ // 把voiceContent拆解成1024的分包\r
+ Util.parseToVoicePacketSent(voiceContent);\r
+ //trigger 分包发送\r
+ if (CoreService.getInstance().getConnection() != null)\r
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
\r
- this.screenOn(paramContext);\r
- }\r
- }else if (paramIntent.hasExtra("sms")) {\r
- String sms = paramIntent.getStringExtra("sms");\r
- SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
- isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
- if (sms != null && !isSilence) {\r
- if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
- this.initMyDialog(paramContext, null, 3,sms);\r
- this.playNotificationVoice(paramContext);\r
- VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
}\r
\r
- this.screenOn(paramContext);\r
- }\r
- }else if (paramIntent.hasExtra("pushtxt")) {\r
- String sms = paramIntent.getStringExtra("pushtxt");\r
- SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
- isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
- if (sms != null && !isSilence) {\r
- if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
- this.initMyDialog(paramContext, null, 4, sms);\r
- this.playNotificationVoice(paramContext);\r
- VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
- }\r
\r
- this.screenOn(paramContext);\r
+ return;\r
+\r
+ } else if (DIALOG_ACTION.equals(str)) {\r
+ if (paramIntent.hasExtra("contact")) {\r
+ contact = (Contact) paramIntent.getParcelableExtra("contact");\r
+ SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
+ isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
+ if (contact != null && !isSilence) {\r
+ if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
+ this.initMyDialog(paramContext, contact, 1, "");\r
+ this.playNotificationVoice(paramContext);\r
+ VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+ }\r
+\r
+ this.screenOn(paramContext);\r
+ }\r
+ } else if (paramIntent.hasExtra("sms")) {\r
+ String sms = paramIntent.getStringExtra("sms");\r
+ SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
+ isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
+ if (sms != null && !isSilence) {\r
+ if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
+ this.initMyDialog(paramContext, null, 3, sms);\r
+ this.playNotificationVoice(paramContext);\r
+ VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+ }\r
+\r
+ this.screenOn(paramContext);\r
+ }\r
+ } else if (paramIntent.hasExtra("pushtxt")) {\r
+ String sms = paramIntent.getStringExtra("pushtxt");\r
+ SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
+ isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
+ if (sms != null && !isSilence) {\r
+ if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
+ this.initMyDialog(paramContext, null, 4, sms);\r
+ this.playNotificationVoice(paramContext);\r
+ VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+ }\r
+\r
+ this.screenOn(paramContext);\r
+ }\r
+ } else if (paramIntent.hasExtra("findDev")) {\r
+ String finddevtxt = paramIntent.getStringExtra("findDev");\r
+ SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
+ isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
+ if (finddevtxt != null && !isSilence) {\r
+ if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
+ this.initMyDialog(paramContext, null, 5, finddevtxt);\r
+ this.playFindDevVoice(paramContext);\r
+ VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
+\r
+ }\r
+\r
+ this.screenOn(paramContext);\r
+ }\r
}\r
- }else if (paramIntent.hasExtra("findDev")) {\r
- String finddevtxt = paramIntent.getStringExtra("findDev");\r
- SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);\r
- isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);\r
- if (finddevtxt != null && !isSilence) {\r
- if (!DeviceInfoUtil.isTopActivity(paramContext)) {\r
- this.initMyDialog(paramContext, null, 5,finddevtxt);\r
- this.playFindDevVoice(paramContext);\r
- VibrateUtil.getInstance(paramContext).VibrateOn(true);\r
\r
+ } else if (ACTION_TEMP_RESULT.equals(str)) {\r
+ double wrist_temp = paramIntent.getDoubleExtra(KEY_TEMP_WRIST, 0.0f);\r
+ double body_temp = paramIntent.getDoubleExtra(KEY_TEMP_BODY, 0.0f);\r
+ String temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
+ ICLogger.i("发送体温测量值 " + temperatureMsg);\r
+ Deliver.sendLocationMSG(temperatureMsg);\r
+ } else if (ACTION_SET_SIT_RANGE.equals(str)) {\r
+ if (paramIntent.hasExtra(Constants.KEY_SIT_RANGE)) {\r
+ int sitrange = paramIntent.getIntExtra(Constants.KEY_SIT_RANGE, 0);\r
+ Config.setKeepSitRangeInMinutes(paramContext, sitrange);\r
+ ICLogger.i("set KeepSitRange int " + sitrange + " minutes!");\r
+ ICLogger.i("则重置 lastCheckSitTime 以及 lastSitCheckStepCount");\r
+ Runtime.lastSitCheckStepCount = CoreService.getInstance().getRuntime().getTotalStepCount();\r
+ Runtime.lastSitCheckTiimeyyyyMMddHHmmss = TimeUtil.getSystemTime3();\r
+ }\r
+ } else {\r
+ //如果来电了,还有未读的消息,干脆关掉,防止影响接电话。\r
+ if (mCustomDialog != null && mCustomDialog.isShowing()) {\r
+ mCustomDialog.dismiss();\r
}\r
\r
- this.screenOn(paramContext);\r
- }\r
+ if (this.mCustomNotification != null && this.mCustomNotification.isShowing()) {\r
+ this.mCustomNotification.dismiss();\r
+ }\r
}\r
+ }\r
\r
- }else if (ACTION_TEMP_RESULT.equals(str)) {\r
- double wrist_temp = paramIntent.getDoubleExtra(KEY_TEMP_WRIST, 0.0f);\r
- double body_temp = paramIntent.getDoubleExtra(KEY_TEMP_BODY, 0.0f);\r
- String temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp);\r
- ICLogger.i("发送体温测量值 " + temperatureMsg);\r
- Deliver.sendLocationMSG(temperatureMsg);\r
- }else if (ACTION_SET_SIT_RANGE.equals(str)) {\r
- if (paramIntent.hasExtra( Constants.KEY_SIT_RANGE)){\r
- int sitrange=paramIntent.getIntExtra(Constants.KEY_SIT_RANGE,0);\r
- Config.setKeepSitRangeInMinutes(paramContext,sitrange);\r
- ICLogger.i("set KeepSitRange int "+sitrange+" minutes!");\r
- ICLogger.i("则重置 lastCheckSitTime 以及 lastSitCheckStepCount");\r
- Runtime.lastSitCheckStepCount=CoreService.getInstance().getRuntime().getTotalStepCount();\r
- Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();\r
- }\r
- } else {\r
- //如果来电了,还有未读的消息,干脆关掉,防止影响接电话。\r
- if (mCustomDialog != null && mCustomDialog.isShowing()) {\r
- mCustomDialog.dismiss();\r
- }\r
+ public void sendStheartRateBroadcast(Context paramContext, String actionStr, int paramInt) {\r
+ Intent intent = new Intent();\r
+ intent.setAction(actionStr);\r
+ intent.putExtra("stheartRateType", paramInt);\r
+ paramContext.sendBroadcast(intent);\r
+ }\r
\r
- if (this.mCustomNotification != null && this.mCustomNotification.isShowing()) {\r
- this.mCustomNotification.dismiss();\r
- }\r
- }\r
- }\r
- \r
- public void sendStheartRateBroadcast(Context paramContext, String actionStr, int paramInt) {\r
- Intent intent = new Intent();\r
- intent.setAction(actionStr);\r
- intent.putExtra("stheartRateType", paramInt);\r
- paramContext.sendBroadcast(intent);\r
- }\r
- public void sendSOSBroadcast(Context paramContext, String actionStr) {\r
- Intent intent = new Intent();\r
- intent.setAction(actionStr);\r
- paramContext.sendBroadcast(intent);\r
- }\r
+ public void sendSOSBroadcast(Context paramContext, String actionStr) {\r
+ Intent intent = new Intent();\r
+ intent.setAction(actionStr);\r
+ paramContext.sendBroadcast(intent);\r
+ }\r
\r
\r
}\r