add voice stream log.
authorkfl_614 <kfl_614@163.com>
Fri, 4 Dec 2020 07:33:31 +0000 (15:33 +0800)
committerkfl_614 <kfl_614@163.com>
Fri, 4 Dec 2020 07:33:31 +0000 (15:33 +0800)
app/src/main/java/com/enqualcomm/support/Constants.java
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/bean/StringMessage.java
app/src/main/java/com/enqualcomm/support/service/Deliver.java
app/src/main/java/com/ic/protocols/protocol_jiai.java
local.properties

index 72efe0f..69cc2ed 100644 (file)
@@ -4,375 +4,374 @@ import android.net.Uri;
 \r
 public interface Constants {\r
 \r
-  public static final String ACTION_LED = "com.enqualcomm.support.ACTION_LED";\r
-\r
-  public static final String ACTION_SHUTDOWN = "com.ic.action.shutdown";\r
-\r
-  public static final String ACTION_PLAYTIME = "com.ic.action.playtime";\r
-\r
-  public static final String ACTION_BROADCAST_PPG = "com.enqualcomm.support.ACTION_BROADCAST_PPG";\r
-  public static final String ACTION_ADDTEST_CONTACTS = "com.enqualcomm.imessage.ACTION_ADDTEST_CONTACTS";\r
-  \r
-  public static final String ACTION_ALARM_ADD_DATAPOINTS = "com.enqualcomm.support.ADD_DATAPOINTS";\r
-  \r
-  public static final String ACTION_ALARM_ALARM_CHANGE = "com.enqualcomm.support.ACTION_ALARM_ALARM_CHANGE";\r
-  \r
-  public static final String ACTION_ANTIOFF_ALARM_CHANGE = "com.enqualcomm.support.ACTION_ANTIOFF_ALARM_CHANGE";\r
-  \r
-  public static final String ACTION_AT_CALLBACK = "com.eqc.intent.action.callback.at";\r
-  \r
-  public static final String ACTION_BATTERY_LOW_MSG = "com.enqualcomm.support.lowbatteryMsg";\r
-  \r
-  public static final String ACTION_CALL_CMCM_SERVICE_INTERFACE = "com.cmcm.interface";\r
-  \r
-  public static final String ACTION_CALL_RING = "com.enqualcomm.support.phone.ring";\r
-  \r
-  public static final String ACTION_CARE_ALARM = "com.enqualcomm.support.ACTION_CARE_ALARM";\r
-  \r
-  public static final String ACTION_CLOSE_UNREAD_MSG = "com.enqualcomm.support.CloseUnreadMsg";\r
-  \r
-  public static final String ACTION_CM_POWERSAVE_MODE = "cmcm.call.eiot.into.powersave";\r
-  \r
-  public static final String ACTION_EQC_ALARM = "com.enqualcomm.support.ACTION_EQC_ALARM";\r
-\r
-  public static final String ACTION_LOCATION_ALARM = "com.enqualcomm.support.ACTION_LOCATION_ALARM";\r
-\r
-  public static final String ACTION_EXIT_MONITOR_MODE = "com.enqualcomm.support.MONITOR_EXIT";\r
-  \r
-  public static final String ACTION_HEART_RATE_RESULT = "com.eqc.heartrate.action.RESULT";\r
-\r
-  public static final String ACTION_HEATR_RATE_START = "com.eqc.heartrate.action.SILENT_START";\r
-  public static final String ACTION_CHECK_ANTIOFF_EVENT = "com.ic.action.CHECK_ANTIOFF_EVENT";\r
-\r
-  public static final String ACTION_IMESSAGE = "action.message";\r
-  \r
-  public static final String ACTION_ISCONNECTED = "com.ic.protocol.ACTION_IS_SERVER_CONNECTED";\r
-  \r
-  public static final String ACTION_ISSILENCE = "com.enqualcomm.icare.ACTION_ISSILENCE";\r
-  \r
-  public static final String ACTION_ISSILENCE2IMESSAGE = "com.enqualcomm.support.ACTION_ISSILENCE2IMESSAGE";\r
-  \r
-  public static final String ACTION_MISSED_CALL_GET = "com.enqualcomm.support.ACTION_MISSED_CALL_GET";\r
-  \r
-  public static final String ACTION_NOTICE_ALARM = "com.enqualcomm.support.ACTION_NOTICE_ALARM";\r
-  \r
-  public static final String ACTION_NOTICE_ALARM_CHANGE = "com.enqualcomm.support.ACTION_NOTICE_ALARM_CHANGE";\r
-  \r
-  public static final String ACTION_PASS_DATA_TO_CM_SERVICES = "com.enqualcomm.support.PASS_DATA";\r
-  \r
-  public static final String ACTION_REMOTE_CAMERA = "com.enqualcomm.support.ACTION_REMOTE_CAMERA";\r
-  \r
-  public static final String ACTION_REMOTE_CAMERA_OSS = "com.enqualcomm.support.ACTION_REMOTE_CAMERA_OSS";\r
-  \r
-  public static final String ACTION_RESTORE_SYSTEM = "android.intent.action.MASTER_CLEAR";\r
-  \r
-  public static final String ACTION_SCANPAIRMESSAGE = "com.enqualcomm.imessage.scanPairMessage";\r
-  \r
-  public static final String ACTION_SEDN_VIDOE_CALL_REQ = "com.enqualcomm.imessage.sendVideoCall";\r
-\r
-  public static final String ACTION_SEND_SOS_MSG = "com.enqualcomm.support.action_send_sos";\r
-\r
-  public static final String ACTION_SEND_EMEGENCY_LOCATION_START = "action.emegency.location.start";\r
-  public static final String ACTION_SEND_EMEGENCY_LOCATION_STOP = "action.emegency.location.stop";\r
-  public static final String ACTION_LOCAL_SOS_ACTION = "com.enqualcomm.support.local_sos";\r
-\r
-  public static final String ACTION_SEND_SOS_VIDEO_FILE = "com.enqualcomm.support.action_send_sos_video_file";\r
-  \r
-  public static final String ACTION_SEND_VIDEO_FILES = "com.enqualcomm.support.ACTION_SEND_VIDEO_FILES";\r
-  \r
-  public static final String ACTION_SHUTDOWN_MOREINFO = "android.intent.action.ACTION_SHUTDOWN_MOREINFO";\r
-  \r
-  public static final String ACTION_SOS_VIDEO_CHAT = "com.enqualcomm.imessage.ACTION_SOS_VIDEO_CHAT";\r
-  \r
-  public static final String ACTION_START_DOWNLOAD = "com.enqualcomm.imessage.START_DOWNLOAD_ACTION";\r
-  \r
-  public static final String ACTION_STHEART_RATE_ALARM_CHANGE = "com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE";\r
-  \r
-  public static final String ACTION_SYNC = "SYNC";\r
-  \r
-  public static final String ACTION_UNBOUND_TERMINAL = "com.enqualcomm.support.ACTION_UNBOUND_TERMINAL";\r
-  \r
-  public static final String ACTION_UPDATE_ICON = "com.enqualcomm.support.ACTION_UPDATE_ICON";\r
-  \r
-  public static final String ACTION_UPDATE_SECRET_KEY = "com.enqualcomm.support.UPDATE_SECRET_KEY";\r
-  \r
-  public static final String ACTION_VIDEO_END_CALL = "com.enqualcomm.support.ACTION_VIDEO_END_CALL";\r
-  \r
-  public static final String ACTION_VIDEO_LOGIN = "com.enqualcomm.imessage.ACTION_VIDEO_LOGIN";\r
-  \r
-  public static final String ACTION_VIDEO_LOGOUT = "com.enqualcomm.imessage.ACTION_VIDEO_LOGOUT";\r
-  \r
-  public static final String ACTION_VIDEO_RECEIVE_LOGIN = "com.enqualcomm.imessage.ACTION_VIDEO_RECEIVE_LOGIN";\r
-  \r
-  public static final String ACTION_WAKEUP_ALARM = "com.eqc.deliverWakeupAlarm.action";\r
-  \r
-  public static final String ACTION_YUN_ALARM_CHANGE = "com.eqc.deskclock.YUN_ALARM_CHANGE";\r
-  \r
-  public static final int ALARM_UPDATE_NOTICE = 206;\r
-  \r
-  public static final int CALL_RECORD_CHANGED = 103;\r
-  \r
-  public static final String CMD_ID_CM = "cmdId";\r
-\r
-  public static final Uri CONTACT_URI =  Uri.parse("content://com.enqualcomm.support/contact");\r
-\r
-  public static final Uri CM_SERVICE_SETTING = Uri.parse("content://com.cmcm.service/cmsetting");\r
-\r
-  public static final String DIALOG_ACTION = "com.enqualcomm.support.DIALOG";\r
-  \r
-  public static final int ENTER_SILENT_MODE = 212;\r
-  \r
-  public static final int EXIT_SILENT_MODE = 213;\r
-  \r
-  public static final String FLAG = "flag";\r
-\r
-  public static final String ANTI_ALARM = "com.enqualcomm.support.ANTI_ALARM";\r
-  public static final String TEMP_ALARM = "com.enqualcomm.support.TEMP_ALARM";\r
-  public static final String HEART_ALARM = "com.enqualcomm.support.HEART_ALARM";\r
-\r
-  public static final int IDLE_MODE_CHANGED = 102;\r
-  \r
-  public static final int INIT_SERVER_OK = 216;\r
-  \r
-  public static final int IN_SILENCE = 600;\r
-  \r
-  public static final boolean IS_OVERSEAS = false;\r
-  \r
-  public static final int JUFENG_SDK_INIT = 215;\r
-  \r
-  public static final String KEY_CATEGORY = "category";\r
-  \r
-  public static final String KEY_COMPANY = "KEY_COMPANY";\r
-  \r
-  public static final String KEY_CONTACT_ID = "contact_id";\r
-  \r
-  public static final String KEY_DELETE_FILE_TIME = "KEY_DELETE_FILE_TIME";\r
-  \r
-  public static final String KEY_DEVICE_ID = "key_device_id";\r
-  \r
-  public static final String KEY_DEVICE_KEY = "key_device_key";\r
-  \r
-  public static final String KEY_FILEPATH = "filepath";\r
-  \r
-  public static final String KEY_FILETYPE = "filetype";\r
-  \r
-  public static final String KEY_ID = "id";\r
-  \r
-  public static final String KEY_ISCONNECTED = "isConnected";\r
-  \r
-  public static final String KEY_ISSILENCE = "KEY_ISSILENCE";\r
-  \r
-  public static final String KEY_IS_RESUME = "key_is_resume";\r
-  \r
-  public static final String KEY_JUST_TALK = "KEY_JUST_TALK";\r
-  \r
-  public static final String KEY_NAME = "name";\r
-  \r
-  public static final String KEY_NET_WORK_TYPE = "NET_WORK_TYPE";\r
-  \r
-  public static final String KEY_NUMBER = "number";\r
-  \r
-  public static final String KEY_PAIR_CID = "PAIR_CID";\r
-  \r
-  public static final String KEY_REMOTE_NUMBER = "key_remote_number";\r
-  \r
-  public static final String KEY_SAVE_STEP_COUNT = "key_save_step_count";\r
-  \r
-  public static final String KEY_SOS_FILE_BODY = "key_sos_file_body";\r
-  \r
-  public static final String KEY_SOS_FILE_FILE_TYPE = "key_sos_file_file_type";\r
-  \r
-  public static final String KEY_STATUS = "key_status";\r
-  \r
-  public static final String KEY_STEP_COUNT = "KEY_STEP_COUNT";\r
-  \r
-  public static final String KEY_UNBOUND_FLAG = "KEY_UNBOUND_FLAG";\r
-  \r
-  public static final String KEY_VIDEO_PATH = "KEY_VIDEO_PATH";\r
-  \r
-  public static final int LOCATION_DATA = 217;\r
-  \r
-  public static final int MONITOR_GOIN = 202;\r
-  \r
-  public static final int MONITOR_GOOUT = 203;\r
-  \r
-  public static final int MSG_WHAT_RELOAD_VOICE = 1000;\r
-  \r
-  public static final int MSG_WHAT_SEND_OSSFILE = 1006;\r
-  \r
-  public static final int MSG_WHAT_SEND_PAIR = 1003;\r
-  \r
-  public static final int MSG_WHAT_SEND_PICTURE = 1002;\r
-  \r
-  public static final int MSG_WHAT_SEND_VOICE = 1001;\r
-  \r
-  public static final int MSG_WHAT_SILENCE_STATUS = 1005;\r
-  \r
-  public static final int MSG_WHAT_VIDEO_CHAT = 1004;\r
-\r
-  public static final int MSG_WHAT_PPG = 1007;\r
-  public static final String key_ppg="ppg";\r
-  public static final String key_bph="bph";\r
-  public static final String key_bpl="bpl";\r
-  public static final String key_spo2="sp02";\r
-\r
-\r
-  public static final int NEW_MEDIA_PUSH = 100;\r
-\r
-  public static final String ACTION_SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";\r
-  public static final String OTHER_ALARM_END = "com.enqualcomm.support.OTHER_ALARM_END";\r
-  \r
-  public static final String OTHER_ALARM_START = "com.enqualcomm.support.OTHER_ALARM_START";\r
-  \r
-  public static final String OTHER_HEARTRATE_ALARM_END = "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_END";\r
-  \r
-  public static final String OTHER_HEARTRATE_ALARM_START = "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START";\r
-  \r
-  public static final int OUT_SILENCE = 700;\r
-  \r
-  public static final int PASS_DATA_DIRECTLY = 500;\r
-  \r
-  public static final int PLAY_RECORD_UPDATE = 207;\r
-  \r
-  public static final int REBOOT_SYSTEM = 208;\r
-  \r
-  public static final int RESET_SYSTEM = 210;\r
-  \r
-  public static final String RESTORE_EXTRA_WIPE_EXTERNAL_STORAGE = "android.intent.extra.WIPE_EXTERNAL_STORAGE";\r
-  \r
-  public static final String RESTORE_REASON = "android.intent.extra.REASON";\r
-\r
-\r
-  public static final  String ACTION_START_FOTA_UPDATE="com.ic.action.startfotaUpdate";\r
-  public static final String ACTION_SMSCMD="com.enqualcomm.support.SMSCMD";\r
-  public static final String ACTION_SMSCMD_Reply="com.ic.action.fotaUpdateReply";\r
-  public static final String KeyReplyData="reply";\r
-\r
-  public static final int RESULT_ERROR = 500;\r
-  \r
-  public static final int RESULT_OK = 200;\r
-  \r
-  public static final String RESUME_ACTION = "com.enqualcomm.imessage.RESUME_ACTION";\r
-  \r
-  public static final String SERVICE_CLS_NAME = "com.enqualcomm.support.CoreService";\r
-  \r
-  public static final String SERVICE_PKG_NAME = "com.enqualcomm.support";\r
-  \r
-  public static final int SHUTDOWN_SYSTM = 209;\r
-  \r
-  public static final String SLEEP_ALARM = "com.enqualcomm.support.SLEEP_ALARM";\r
-  \r
-  public static final String SOS_ACTION = "com.enqualcomm.imessage.SOS_ACTION";\r
-  \r
-  public static final int SOS_GOIN = 204;\r
-  \r
-  public static final int SOS_GOOUT = 205;\r
-  \r
-  public static final String STEP_COUNT_ALARM_ACTION = "com.enqualcomm.support.ACTION_STEP_COUNT_ALARM";\r
-  \r
-  public static final String STRING_CMD_JSON_DATA = "cmdJsonData";\r
-  \r
-  public static final String STWORKMODE_ALARM = "com.enqualcomm.support.ACTION_STWORKMODE_ALARM";\r
-  \r
-  public static final String VALUE_SETTIING_VERSION = "value_setting_ver";\r
-  \r
-  public static final int VIDEO_MESSAGE = 300;\r
-  \r
-  public static final String WAKE_ALARM = "com.enqualcomm.support.WAKE_ALARM";\r
-  \r
-  public static final String WEATHER_ALARM = "com.enqualcomm.support.ACTION_WEATHER_ALARM";\r
-  \r
-  public static final int WIFI_SET_RESULT = 217;\r
-  \r
-  public static final int WORKMODE_CHANGED = 211;\r
-  \r
-  public static final String contact = "contact";\r
-  \r
-  public static final String wechat_contact = "content";\r
-\r
-\r
-  public static final String ACTION_CHECK_SERVER_RESPONSE = "com.enqualcomm.support.ACTION_CHECK_SERVER_RESPONSE";\r
-  public static final String ACTION_RETRY_SERVER_CONNECT = "com.enqualcomm.support.ACTION_RETRY_SERVER_CONNECT";\r
-  public static final String ACTION_CHECK_LOCATION_RESULT = "com.enqualcomm.support.ACTION_CHECK_LOCATION_RESULT";\r
-\r
-\r
-  public static final String ACTION_MESSAGE_SENT = "com.ic.action.message_sent";\r
-  public static final String ACTION_MESSAGE_RECEIVED = "com.ic.action.message_received";\r
-  public static final String KEY_MESSAGE_TYPE = "msgType";  //  分为 voice ,pic ,和 text\r
-  public static final String KEY_MESSAGE_URL = "msgUrl";  //  消息为 voice和 pic 此纪录为 路径, text消息则直接是消息内容。 utf-8 格式String\r
-  public static final String KEY_MESSAGE_FROM = "msgFrom"; // 消息来源(发送者名称),预留,暂时不用。\r
-\r
-\r
-\r
-  public static final String ACTION_TEMP_RESULT = "com.ic.action.temp_result";\r
-  public static final String KEY_TEMP_BODY = "body";  // double 体温\r
-  public static final String KEY_TEMP_WRIST= "wrist";  //  double 腕温\r
-\r
-  public static String ACTION_ANTI_OFF = "com.ic.ACTION_STRIP";\r
-  public static String KEY_ANTI_EVENT="eventID"; //integer  eventID =1 脱落, eventID =0 佩戴\r
-  public static String KEY_ANTI_TXT="eventTxt"; //String AnitMessage\r
-\r
-  public static String ACTION_BATTERYLOW = "com.ic.ACTION_BATTERYLOW";\r
-  public static String KEY_BATTERY_EVENT="eventID"; //integer  eventID =1 battery low, eventID =0 解除\r
-\r
-  public static String PersistFotaServer2Url="persist.sys.ota.host2";\r
-\r
-  //把服务器下发的文本消息作为短信消息存储在短信数据库中,mms.apk会接收此消息并保存到数据库\r
-  //persist.sys.pushtxtAsSMS == false的时候mms.apk会忽略此消息,默认事true,所以要关闭要单独设置\r
-  public static String ActionReceivePushTxt="action.ic.PushTxtToSMSDB";\r
-  public static String ActionSrvPushTxt="action.ic.srvPushTxt";\r
+    String ACTION_LED = "com.enqualcomm.support.ACTION_LED";\r
 \r
-/**\r
- *   PreferenceManager.getDefaultSharedPreferences(context) , package name "com.enqualcomm.support"\r
- */\r
+    String ACTION_SHUTDOWN = "com.ic.action.shutdown";\r
 \r
-  /***\r
-   * 心率血压血氧校准值\r
-   * String 变量,用 "," 分割的 4个数据 格式为【ppg_adj,bph_adj,bpl_adj,spo2_adj】\r
-   * 例如\r
-   * 心率偏差ppg_adj=2,\r
-   * 高压偏差bph_adj=-2,\r
-   * 低压偏差bpl_adj=-3,\r
-   * 血氧偏差spo2_adj=5\r
-   * 则赋值 2,-2,-3,5\r
-   */\r
-  public static String SHAREKEY_SETTING_PPG_ECG_ADJUST = "PpgEcgAdjust";\r
-  /**\r
-   * 睡眠分数 , int\r
-   */\r
-  public static String SHAREKEY_SETTING_SLEEP_SCORE = "SleepScore";\r
-  /**\r
-  *当前睡眠分数的日期  String yyMMddHHmm\r
-  *可能时昨天的,算完就是当天的\r
-   * */\r
-  public static String SHAREKEY_SETTING_SLEEP_SCORE_DATE = "SleepScoreDate";\r
-\r
-  /**\r
-   * 久坐检测时长,int 分钟为单位,此处为读取方法,可在显示前读取当前设置。\r
-   * 设置请采用broadcast方式发给协议层存储\r
-   */\r
-  public static String SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES = "SIT_RANGE";\r
-\r
-/***\r
- *  ACTion 用于 设置久坐时长分钟为单位\r
- */\r
+    String ACTION_PLAYTIME = "com.ic.action.playtime";\r
+\r
+    String ACTION_BROADCAST_PPG = "com.enqualcomm.support.ACTION_BROADCAST_PPG";\r
+    String ACTION_ADDTEST_CONTACTS = "com.enqualcomm.imessage.ACTION_ADDTEST_CONTACTS";\r
+\r
+    String ACTION_ALARM_ADD_DATAPOINTS = "com.enqualcomm.support.ADD_DATAPOINTS";\r
+\r
+    String ACTION_ALARM_ALARM_CHANGE = "com.enqualcomm.support.ACTION_ALARM_ALARM_CHANGE";\r
+\r
+    String ACTION_ANTIOFF_ALARM_CHANGE = "com.enqualcomm.support.ACTION_ANTIOFF_ALARM_CHANGE";\r
+\r
+    String ACTION_AT_CALLBACK = "com.eqc.intent.action.callback.at";\r
+\r
+    String ACTION_BATTERY_LOW_MSG = "com.enqualcomm.support.lowbatteryMsg";\r
+\r
+    String ACTION_CALL_CMCM_SERVICE_INTERFACE = "com.cmcm.interface";\r
+\r
+    String ACTION_CALL_RING = "com.enqualcomm.support.phone.ring";\r
+\r
+    String ACTION_CARE_ALARM = "com.enqualcomm.support.ACTION_CARE_ALARM";\r
+\r
+    String ACTION_CLOSE_UNREAD_MSG = "com.enqualcomm.support.CloseUnreadMsg";\r
+\r
+    String ACTION_CM_POWERSAVE_MODE = "cmcm.call.eiot.into.powersave";\r
+\r
+    String ACTION_EQC_ALARM = "com.enqualcomm.support.ACTION_EQC_ALARM";\r
+\r
+    String ACTION_LOCATION_ALARM = "com.enqualcomm.support.ACTION_LOCATION_ALARM";\r
+\r
+    String ACTION_EXIT_MONITOR_MODE = "com.enqualcomm.support.MONITOR_EXIT";\r
+\r
+    String ACTION_HEART_RATE_RESULT = "com.eqc.heartrate.action.RESULT";\r
+\r
+    String ACTION_HEATR_RATE_START = "com.eqc.heartrate.action.SILENT_START";\r
+    String ACTION_CHECK_ANTIOFF_EVENT = "com.ic.action.CHECK_ANTIOFF_EVENT";\r
+\r
+    String ACTION_IMESSAGE = "action.message";\r
+\r
+    String ACTION_ISCONNECTED = "com.ic.protocol.ACTION_IS_SERVER_CONNECTED";\r
+\r
+    String ACTION_ISSILENCE = "com.enqualcomm.icare.ACTION_ISSILENCE";\r
+\r
+    String ACTION_ISSILENCE2IMESSAGE = "com.enqualcomm.support.ACTION_ISSILENCE2IMESSAGE";\r
+\r
+    String ACTION_MISSED_CALL_GET = "com.enqualcomm.support.ACTION_MISSED_CALL_GET";\r
+\r
+    String ACTION_NOTICE_ALARM = "com.enqualcomm.support.ACTION_NOTICE_ALARM";\r
+\r
+    String ACTION_NOTICE_ALARM_CHANGE = "com.enqualcomm.support.ACTION_NOTICE_ALARM_CHANGE";\r
+\r
+    String ACTION_PASS_DATA_TO_CM_SERVICES = "com.enqualcomm.support.PASS_DATA";\r
+\r
+    String ACTION_REMOTE_CAMERA = "com.enqualcomm.support.ACTION_REMOTE_CAMERA";\r
+\r
+    String ACTION_REMOTE_CAMERA_OSS = "com.enqualcomm.support.ACTION_REMOTE_CAMERA_OSS";\r
+\r
+    String ACTION_RESTORE_SYSTEM = "android.intent.action.MASTER_CLEAR";\r
+\r
+    String ACTION_SCANPAIRMESSAGE = "com.enqualcomm.imessage.scanPairMessage";\r
+\r
+    String ACTION_SEDN_VIDOE_CALL_REQ = "com.enqualcomm.imessage.sendVideoCall";\r
+\r
+    String ACTION_SEND_SOS_MSG = "com.enqualcomm.support.action_send_sos";\r
+\r
+    String ACTION_SEND_EMEGENCY_LOCATION_START = "action.emegency.location.start";\r
+    String ACTION_SEND_EMEGENCY_LOCATION_STOP = "action.emegency.location.stop";\r
+    String ACTION_LOCAL_SOS_ACTION = "com.enqualcomm.support.local_sos";\r
+\r
+    String ACTION_SEND_SOS_VIDEO_FILE = "com.enqualcomm.support.action_send_sos_video_file";\r
+\r
+    String ACTION_SEND_VIDEO_FILES = "com.enqualcomm.support.ACTION_SEND_VIDEO_FILES";\r
+\r
+    String ACTION_SHUTDOWN_MOREINFO = "android.intent.action.ACTION_SHUTDOWN_MOREINFO";\r
+\r
+    String ACTION_SOS_VIDEO_CHAT = "com.enqualcomm.imessage.ACTION_SOS_VIDEO_CHAT";\r
+\r
+    String ACTION_START_DOWNLOAD = "com.enqualcomm.imessage.START_DOWNLOAD_ACTION";\r
+\r
+    String ACTION_STHEART_RATE_ALARM_CHANGE = "com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE";\r
+\r
+    String ACTION_SYNC = "SYNC";\r
+\r
+    String ACTION_UNBOUND_TERMINAL = "com.enqualcomm.support.ACTION_UNBOUND_TERMINAL";\r
+\r
+    String ACTION_UPDATE_ICON = "com.enqualcomm.support.ACTION_UPDATE_ICON";\r
+\r
+    String ACTION_UPDATE_SECRET_KEY = "com.enqualcomm.support.UPDATE_SECRET_KEY";\r
+\r
+    String ACTION_VIDEO_END_CALL = "com.enqualcomm.support.ACTION_VIDEO_END_CALL";\r
+\r
+    String ACTION_VIDEO_LOGIN = "com.enqualcomm.imessage.ACTION_VIDEO_LOGIN";\r
+\r
+    String ACTION_VIDEO_LOGOUT = "com.enqualcomm.imessage.ACTION_VIDEO_LOGOUT";\r
+\r
+    String ACTION_VIDEO_RECEIVE_LOGIN = "com.enqualcomm.imessage.ACTION_VIDEO_RECEIVE_LOGIN";\r
+\r
+    String ACTION_WAKEUP_ALARM = "com.eqc.deliverWakeupAlarm.action";\r
+\r
+    String ACTION_YUN_ALARM_CHANGE = "com.eqc.deskclock.YUN_ALARM_CHANGE";\r
+\r
+    int ALARM_UPDATE_NOTICE = 206;\r
+\r
+    int CALL_RECORD_CHANGED = 103;\r
+\r
+    String CMD_ID_CM = "cmdId";\r
+\r
+    Uri CONTACT_URI = Uri.parse("content://com.enqualcomm.support/contact");\r
+\r
+    Uri CM_SERVICE_SETTING = Uri.parse("content://com.cmcm.service/cmsetting");\r
+\r
+    String DIALOG_ACTION = "com.enqualcomm.support.DIALOG";\r
+\r
+    int ENTER_SILENT_MODE = 212;\r
+\r
+    int EXIT_SILENT_MODE = 213;\r
+\r
+    String FLAG = "flag";\r
+\r
+    String ANTI_ALARM = "com.enqualcomm.support.ANTI_ALARM";\r
+    String TEMP_ALARM = "com.enqualcomm.support.TEMP_ALARM";\r
+    String HEART_ALARM = "com.enqualcomm.support.HEART_ALARM";\r
+\r
+    int IDLE_MODE_CHANGED = 102;\r
+\r
+    int INIT_SERVER_OK = 216;\r
+\r
+    int IN_SILENCE = 600;\r
+\r
+    boolean IS_OVERSEAS = false;\r
+\r
+    int JUFENG_SDK_INIT = 215;\r
+\r
+    String KEY_CATEGORY = "category";\r
+\r
+    String KEY_COMPANY = "KEY_COMPANY";\r
+\r
+    String KEY_CONTACT_ID = "contact_id";\r
+\r
+    String KEY_DELETE_FILE_TIME = "KEY_DELETE_FILE_TIME";\r
+\r
+    String KEY_DEVICE_ID = "key_device_id";\r
+\r
+    String KEY_DEVICE_KEY = "key_device_key";\r
+\r
+    String KEY_FILEPATH = "filepath";\r
+\r
+    String KEY_FILETYPE = "filetype";\r
+\r
+    String KEY_ID = "id";\r
 \r
-  public static String ACTION_SET_SIT_RANGE = "com.ic.action.set_sit_range";\r
-  /**\r
-   * ACTION_SET_SIT_RANGE 参数 int,分钟数。\r
-   */\r
-  public static String KEY_SIT_RANGE = "sit_range";\r
+    String KEY_ISCONNECTED = "isConnected";\r
 \r
+    String KEY_ISSILENCE = "KEY_ISSILENCE";\r
 \r
-  /***\r
-   * 内部定时器用action alarm\r
-   */\r
-  public static String ACTION_SIT_ALARM = "com.ic.action.sit_alarm_local";\r
+    String KEY_IS_RESUME = "key_is_resume";\r
+\r
+    String KEY_JUST_TALK = "KEY_JUST_TALK";\r
+\r
+    String KEY_NAME = "name";\r
+\r
+    String KEY_NET_WORK_TYPE = "NET_WORK_TYPE";\r
+\r
+    String KEY_NUMBER = "number";\r
+\r
+    String KEY_PAIR_CID = "PAIR_CID";\r
+\r
+    String KEY_REMOTE_NUMBER = "key_remote_number";\r
+\r
+    String KEY_SAVE_STEP_COUNT = "key_save_step_count";\r
+\r
+    String KEY_SOS_FILE_BODY = "key_sos_file_body";\r
+\r
+    String KEY_SOS_FILE_FILE_TYPE = "key_sos_file_file_type";\r
+\r
+    String KEY_STATUS = "key_status";\r
+\r
+    String KEY_STEP_COUNT = "KEY_STEP_COUNT";\r
+\r
+    String KEY_UNBOUND_FLAG = "KEY_UNBOUND_FLAG";\r
+\r
+    String KEY_VIDEO_PATH = "KEY_VIDEO_PATH";\r
+\r
+    int LOCATION_DATA = 217;\r
+\r
+    int MONITOR_GOIN = 202;\r
+\r
+    int MONITOR_GOOUT = 203;\r
+\r
+    int MSG_WHAT_RELOAD_VOICE = 1000;\r
+\r
+    int MSG_WHAT_SEND_OSSFILE = 1006;\r
+\r
+    int MSG_WHAT_SEND_PAIR = 1003;\r
+\r
+    int MSG_WHAT_SEND_PICTURE = 1002;\r
+\r
+    int MSG_WHAT_SEND_VOICE = 1001;\r
+\r
+    int MSG_WHAT_SILENCE_STATUS = 1005;\r
+\r
+    int MSG_WHAT_VIDEO_CHAT = 1004;\r
+\r
+    int MSG_WHAT_PPG = 1007;\r
+    String key_ppg = "ppg";\r
+    String key_bph = "bph";\r
+    String key_bpl = "bpl";\r
+    String key_spo2 = "sp02";\r
+\r
+\r
+    int NEW_MEDIA_PUSH = 100;\r
+\r
+    String ACTION_SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";\r
+    String OTHER_ALARM_END = "com.enqualcomm.support.OTHER_ALARM_END";\r
+\r
+    String OTHER_ALARM_START = "com.enqualcomm.support.OTHER_ALARM_START";\r
+\r
+    String OTHER_HEARTRATE_ALARM_END = "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_END";\r
+\r
+    String OTHER_HEARTRATE_ALARM_START = "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START";\r
+\r
+    int OUT_SILENCE = 700;\r
+\r
+    int PASS_DATA_DIRECTLY = 500;\r
+\r
+    int PLAY_RECORD_UPDATE = 207;\r
+\r
+    int REBOOT_SYSTEM = 208;\r
+\r
+    int RESET_SYSTEM = 210;\r
+\r
+    String RESTORE_EXTRA_WIPE_EXTERNAL_STORAGE = "android.intent.extra.WIPE_EXTERNAL_STORAGE";\r
+\r
+    String RESTORE_REASON = "android.intent.extra.REASON";\r
+\r
+\r
+    String ACTION_START_FOTA_UPDATE = "com.ic.action.startfotaUpdate";\r
+    String ACTION_SMSCMD = "com.enqualcomm.support.SMSCMD";\r
+    String ACTION_SMSCMD_Reply = "com.ic.action.fotaUpdateReply";\r
+    String KeyReplyData = "reply";\r
+\r
+    int RESULT_ERROR = 500;\r
+\r
+    int RESULT_OK = 200;\r
+\r
+    String RESUME_ACTION = "com.enqualcomm.imessage.RESUME_ACTION";\r
+\r
+    String SERVICE_CLS_NAME = "com.enqualcomm.support.CoreService";\r
+\r
+    String SERVICE_PKG_NAME = "com.enqualcomm.support";\r
+\r
+    int SHUTDOWN_SYSTM = 209;\r
+\r
+    String SLEEP_ALARM = "com.enqualcomm.support.SLEEP_ALARM";\r
+\r
+    String SOS_ACTION = "com.enqualcomm.imessage.SOS_ACTION";\r
+\r
+    int SOS_GOIN = 204;\r
+\r
+    int SOS_GOOUT = 205;\r
+\r
+    String STEP_COUNT_ALARM_ACTION = "com.enqualcomm.support.ACTION_STEP_COUNT_ALARM";\r
+\r
+    String STRING_CMD_JSON_DATA = "cmdJsonData";\r
+\r
+    String STWORKMODE_ALARM = "com.enqualcomm.support.ACTION_STWORKMODE_ALARM";\r
+\r
+    String VALUE_SETTIING_VERSION = "value_setting_ver";\r
+\r
+    int VIDEO_MESSAGE = 300;\r
+\r
+    String WAKE_ALARM = "com.enqualcomm.support.WAKE_ALARM";\r
+\r
+    String WEATHER_ALARM = "com.enqualcomm.support.ACTION_WEATHER_ALARM";\r
+\r
+    int WIFI_SET_RESULT = 217;\r
+\r
+    int WORKMODE_CHANGED = 211;\r
+\r
+    String contact = "contact";\r
+\r
+    String wechat_contact = "content";\r
+\r
+\r
+    String ACTION_CHECK_SERVER_RESPONSE = "com.enqualcomm.support.ACTION_CHECK_SERVER_RESPONSE";\r
+    String ACTION_RETRY_SERVER_CONNECT = "com.enqualcomm.support.ACTION_RETRY_SERVER_CONNECT";\r
+    String ACTION_CHECK_LOCATION_RESULT = "com.enqualcomm.support.ACTION_CHECK_LOCATION_RESULT";\r
+\r
+\r
+    String ACTION_MESSAGE_SENT = "com.ic.action.message_sent";\r
+    String ACTION_MESSAGE_RECEIVED = "com.ic.action.message_received";\r
+    String KEY_MESSAGE_TYPE = "msgType";  //  分为 voice ,pic ,和 text\r
+    String KEY_MESSAGE_URL = "msgUrl";  //  消息为 voice和 pic 此纪录为 路径, text消息则直接是消息内容。 utf-8 格式String\r
+    String KEY_MESSAGE_FROM = "msgFrom"; // 消息来源(发送者名称),预留,暂时不用。\r
+\r
+\r
+    String ACTION_TEMP_RESULT = "com.ic.action.temp_result";\r
+    String KEY_TEMP_BODY = "body";  // double 体温\r
+    String KEY_TEMP_WRIST = "wrist";  //  double 腕温\r
+\r
+    String ACTION_ANTI_OFF = "com.ic.ACTION_STRIP";\r
+    String KEY_ANTI_EVENT = "eventID"; //integer  eventID =1 脱落, eventID =0 佩戴\r
+    String KEY_ANTI_TXT = "eventTxt"; //String AnitMessage\r
+\r
+    String ACTION_BATTERYLOW = "com.ic.ACTION_BATTERYLOW";\r
+    String KEY_BATTERY_EVENT = "eventID"; //integer  eventID =1 battery low, eventID =0 解除\r
+\r
+    String PersistFotaServer2Url = "persist.sys.ota.host2";\r
+\r
+    //把服务器下发的文本消息作为短信消息存储在短信数据库中,mms.apk会接收此消息并保存到数据库\r
+    //persist.sys.pushtxtAsSMS == false的时候mms.apk会忽略此消息,默认事true,所以要关闭要单独设置\r
+    public static String ActionReceivePushTxt = "action.ic.PushTxtToSMSDB";\r
+    public static String ActionSrvPushTxt = "action.ic.srvPushTxt";\r
+\r
+/**\r
+ *   PreferenceManager.getDefaultSharedPreferences(context) , package name "com.enqualcomm.support"\r
+ */\r
 \r
-  /**\r
-   * 发送给app做显示用\r
-   */\r
-  public static String ACTION_KEEPSIT_ALARM = "com.ic.action.keep_sit_alarm";\r
+    /***\r
+     * 心率血压血氧校准值\r
+     * String 变量,用 "," 分割的 4个数据 格式为【ppg_adj,bph_adj,bpl_adj,spo2_adj】\r
+     * 例如\r
+     * 心率偏差ppg_adj=2,\r
+     * 高压偏差bph_adj=-2,\r
+     * 低压偏差bpl_adj=-3,\r
+     * 血氧偏差spo2_adj=5\r
+     * 则赋值 2,-2,-3,5\r
+     */\r
+    public static String SHAREKEY_SETTING_PPG_ECG_ADJUST = "PpgEcgAdjust";\r
+    /**\r
+     * 睡眠分数 , int\r
+     */\r
+    public static String SHAREKEY_SETTING_SLEEP_SCORE = "SleepScore";\r
+    /**\r
+     * 当前睡眠分数的日期  String yyMMddHHmm\r
+     * 可能时昨天的,算完就是当天的\r
+     */\r
+    public static String SHAREKEY_SETTING_SLEEP_SCORE_DATE = "SleepScoreDate";\r
+\r
+    /**\r
+     * 久坐检测时长,int 分钟为单位,此处为读取方法,可在显示前读取当前设置。\r
+     * 设置请采用broadcast方式发给协议层存储\r
+     */\r
+    public static String SHAREKEY_SETTING_SIT_ALARM_RANGE_IN_MINUTES = "SIT_RANGE";\r
+\r
+    /***\r
+     *  ACTion 用于 设置久坐时长分钟为单位\r
+     */\r
+\r
+    public static String ACTION_SET_SIT_RANGE = "com.ic.action.set_sit_range";\r
+    /**\r
+     * ACTION_SET_SIT_RANGE 参数 int,分钟数。\r
+     */\r
+    public static String KEY_SIT_RANGE = "sit_range";\r
+\r
+\r
+    /***\r
+     * 内部定时器用action alarm\r
+     */\r
+    public static String ACTION_SIT_ALARM = "com.ic.action.sit_alarm_local";\r
+\r
+    /**\r
+     * 发送给app做显示用\r
+     */\r
+    public static String ACTION_KEEPSIT_ALARM = "com.ic.action.keep_sit_alarm";\r
 \r
 \r
 }\r
index f8039a4..1645aca 100644 (file)
@@ -58,6 +58,7 @@ import com.enqualcomm.support.utils.SimSignalUtil;
 import com.enqualcomm.support.utils.Util;\r
 \r
 import java.lang.ref.WeakReference;\r
+\r
 import chestnut.ui.Toastc;\r
 import rx.Observable;\r
 import rx.functions.Action1;\r
@@ -98,20 +99,20 @@ public class CoreService extends Service {
 \r
     private Toastc toast = null;\r
 \r
-    private static CoreService mProtocolServer=null;\r
-    private static LBSHelper lbshelper=null;\r
+    private static CoreService mProtocolServer = null;\r
+    private static LBSHelper lbshelper = null;\r
 \r
     public static final String ACTION_ALARM = "com.enqualcomm.support.ACTION_ALARM";\r
 \r
-    private static final int GRAY_SERVICE_ID =android.os.Process.myPid();\r
+    private static final int GRAY_SERVICE_ID = android.os.Process.myPid();\r
 \r
-    private static final String MY_WAKE_LOCKTAG =CoreService.class.getSimpleName();\r
+    private static final String MY_WAKE_LOCKTAG = CoreService.class.getSimpleName();\r
 \r
     public static int alarmCycle = 1;\r
 \r
     public static final int interval = 60000;\r
 \r
-    public static boolean needLocateInAfterHeartBeat=false;\r
+    public static boolean needLocateInAfterHeartBeat = false;\r
     private static int is_allowed_in_sleep_mode = 1;\r
 \r
     private static boolean is_in_sleep_mode = false;\r
@@ -120,9 +121,10 @@ public class CoreService extends Service {
     // SPRD: add outdoorMode\r
     public static final int RINGER_MODE_OUTDOOR = 3;\r
 \r
-    private static ICSmsManager smsManager=null;\r
-    public String getServerAlive(){\r
-       return DeviceInfoUtil.getDeviceInfo(runtime);\r
+    private static ICSmsManager smsManager = null;\r
+\r
+    public String getServerAlive() {\r
+        return DeviceInfoUtil.getDeviceInfo(runtime);\r
     }\r
 \r
     private BroadcastReceiver AtCallbackBroadcastReceiver = new BroadcastReceiver() {\r
@@ -144,7 +146,7 @@ public class CoreService extends Service {
                         stringBuilder1.append(Integer.valueOf(str, 16));\r
                         stringBuilder1.append(",CELLID=");\r
                         stringBuilder1.append(Integer.valueOf(str1, 16));\r
-                        if (Config.LOG_TOFILE) ICLogger.logToFile( "LBS", stringBuilder1.toString());\r
+                        if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", stringBuilder1.toString());\r
                     }\r
                 }\r
             }\r
@@ -156,10 +158,10 @@ public class CoreService extends Service {
             StringBuilder stringBuilder2 = new StringBuilder();\r
             stringBuilder2.append("broadcastReceiver  alarmCycle action==");\r
             stringBuilder2.append(param1Intent.getAction());\r
-            if (Config.LOG_TOFILE) ICLogger.logToFile( "alarmCycle", stringBuilder2.toString());\r
+            if (Config.LOG_TOFILE) ICLogger.logToFile("alarmCycle", stringBuilder2.toString());\r
             StringBuilder stringBuilder1 = new StringBuilder();\r
             stringBuilder1.append("时间变化");\r
-            stringBuilder1.append(param1Intent.getAction()+stringBuilder2.toString());\r
+            stringBuilder1.append(param1Intent.getAction() + stringBuilder2.toString());\r
             ICLogger.i(stringBuilder1.toString());\r
 \r
             //只有需要确定绝对时间点启动的Alarm需要重置,相对时间点的Alarm不需要重置。防止永远不能正常登陆。\r
@@ -168,8 +170,8 @@ public class CoreService extends Service {
 //            setHeartAlarm();\r
 //           setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
             setWeatherAlarm();\r
-            runtime.getContextProxy().sendBroadcast("com.enqualcomm.support.ACTION_ALARM_ALARM_CHANGE",runtime); //更新Alarm\r
-           // setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+            runtime.getContextProxy().sendBroadcast("com.enqualcomm.support.ACTION_ALARM_ALARM_CHANGE", runtime); //更新Alarm\r
+            // setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
             if (cmcm_call_eiot_into_powersave_mode() == 0)\r
                 AlarmWakeUp.isNeedWakeUpAlarm(runtime);\r
         }\r
@@ -182,7 +184,7 @@ public class CoreService extends Service {
             stringBuilder2.append(param1Intent.getAction());\r
             ICLogger.i(stringBuilder2.toString());\r
 \r
-            if (ACTION_SEND_EMEGENCY_LOCATION_START.equals(param1Intent.getAction())){\r
+            if (ACTION_SEND_EMEGENCY_LOCATION_START.equals(param1Intent.getAction())) {\r
                 runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD);\r
                 runtime.setPpgTestCycle(1);\r
                 setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
@@ -191,73 +193,77 @@ public class CoreService extends Service {
 \r
 \r
                 setEmegencyLocationSTOPAlarm(5);\r
-            }else if (ACTION_LOCAL_SOS_ACTION.endsWith(param1Intent.getAction())){\r
+            } else if (ACTION_LOCAL_SOS_ACTION.endsWith(param1Intent.getAction())) {\r
 \r
 \r
                 VibrateUtil.getInstance(runtime.getContextProxy().context).VibrateOn(true);\r
 //               if( param1Intent.getIntExtra("type", 1) == 1) {\r
-                boolean needHRSTestOnSOS = Util.getSystemProperties("persist.sys.needHRSOnSOS","false").equals("true");\r
-                if(needHRSTestOnSOS) {\r
+                boolean needHRSTestOnSOS = Util.getSystemProperties("persist.sys.needHRSOnSOS", "false").equals("true");\r
+                if (needHRSTestOnSOS) {\r
                     setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
                     HeartRateManager.triggerPPGtest();\r
                 }\r
-                    runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS);\r
-                    //trigger AP10 报警定位\r
+                runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS);\r
+                //trigger AP10 报警定位\r
 //                   CoreService.this.locationClient.triggerSOSLocationProcess();\r
-                    connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(runtime)));\r
+                connection.send(protocolAPIHelper.genStringMessage("AP10", protocolAPIHelper.getWarningMSG(runtime)));\r
 \r
-                    //开启紧急定位模式,GPS 优先1分钟一次定位,持续5分钟\r
-                    runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD);\r
-                    setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
+                //开启紧急定位模式,GPS 优先1分钟一次定位,持续5分钟\r
+                runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD);\r
+                setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
 \r
-                    //SOS模式,心率测试1分钟一次,持续5分钟\r
-                    if(needHRSTestOnSOS) {\r
-                        runtime.setPpgTestCycle(1);\r
-                        setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
-                    }\r
-                    //设置5分钟后结束紧急定位模式\r
-                   setEmegencyLocationSTOPAlarm(5);\r
+                //SOS模式,心率测试1分钟一次,持续5分钟\r
+                if (needHRSTestOnSOS) {\r
+                    runtime.setPpgTestCycle(1);\r
+                    setHeartRateDetectAlarm(runtime.getPpgTestCycle());\r
+                }\r
+                //设置5分钟后结束紧急定位模式\r
+                setEmegencyLocationSTOPAlarm(5);\r
 \r
 \r
-                   if(Config.SOSNoNeedDial==false) {\r
-                       //50ms后开始拨打电话\r
-                       Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
-                           public void call(Long param1Long) {\r
-                               trigger_SOS_Call();\r
-                           }\r
-                       });\r
+                if (Config.SOSNoNeedDial == false) {\r
+                    //50ms后开始拨打电话\r
+                    Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+                        public void call(Long param1Long) {\r
+                            trigger_SOS_Call();\r
+                        }\r
+                    });\r
 \r
-                   }\r
                 }\r
+            }\r
         }\r
     };\r
 \r
-    private void trigger_SOS_Call(){\r
+    private void trigger_SOS_Call() {\r
         try {\r
             Intent intent = new Intent("com.eqc.shutdown_sos");\r
-            intent.putExtra("type",1);\r
+            intent.putExtra("type", 1);\r
             intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);\r
             this.startActivity(intent);\r
-        }catch (Exception e){\r
+        } catch (Exception e) {\r
             e.printStackTrace();\r
         }\r
     }\r
+\r
     private static class ServerHandler implements ConnectionListener {\r
         private final WeakReference<CoreService> mReference;\r
 \r
-        ServerHandler(CoreService param1CoreService) { this.mReference = new WeakReference(param1CoreService); }\r
+        ServerHandler(CoreService param1CoreService) {\r
+            this.mReference = new WeakReference(param1CoreService);\r
+        }\r
 \r
         @Override\r
         public void onConnectionClose(String errorName) {\r
-            CoreService coreService = (CoreService)this.mReference.get();\r
+            CoreService coreService = (CoreService) this.mReference.get();\r
             if (coreService == null)\r
                 return;\r
-            ICLogger.i("onConnectionClose++ retry to connect again!  Close Error "+errorName);\r
-            coreService.connectionServiceChain.processConnectionClose(coreService.connection, coreService.runtime,errorName);\r
+            ICLogger.i("onConnectionClose++ retry to connect again!  Close Error " + errorName);\r
+            coreService.connectionServiceChain.processConnectionClose(coreService.connection, coreService.runtime, errorName);\r
         }\r
+\r
         @Override\r
         public void onConnectionOpen() {\r
-            CoreService coreService = (CoreService)this.mReference.get();\r
+            CoreService coreService = (CoreService) this.mReference.get();\r
             if (coreService == null)\r
                 return;\r
             coreService.connectionServiceChain.processConnectionOpen(coreService.connection, coreService.runtime);\r
@@ -266,14 +272,16 @@ public class CoreService extends Service {
 \r
         public void onReceive(StringMessage param1StringMessage) {\r
 \r
-            CoreService coreService = (CoreService)this.mReference.get();\r
-            ICLogger.i("onReceive " +param1StringMessage.cmd() +" coreService " + coreService  );\r
+            CoreService coreService = (CoreService) this.mReference.get();\r
+            ICLogger.i("onReceive " + param1StringMessage.cmd() + " coreService " + coreService);\r
             if (coreService == null)\r
                 return;\r
+            ICLogger.d("process CMD..");\r
             coreService.connectionServiceChain.processServerResponse(param1StringMessage, coreService.connection, coreService.runtime);\r
             coreService.locationClient.onReceive(param1StringMessage);\r
         }\r
     }\r
+\r
     NettyConnection connection = null;\r
     AbstractConnectionService connectionServiceChain;\r
 \r
@@ -325,9 +333,9 @@ public class CoreService extends Service {
                 CoreService.this.locationClient.updateStepCount();\r
                 Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
                     public void call(Long param1Long) {\r
-                        if (connection.isServerConnected()&& runtime.isServerProtocolConnected()) {\r
+                        if (connection.isServerConnected() && runtime.isServerProtocolConnected()) {\r
                             mKeepAlive.onHeartAlarm(connection, runtime);\r
-                        }else{\r
+                        } else {\r
                             ICLogger.i("check 发送心跳包时,如果发现服务器没有响应,或者socket连接,则重新尝试连接服务器!");\r
                             connection.disconnectServer();\r
                             startConnectionRetryTimer();\r
@@ -343,8 +351,8 @@ public class CoreService extends Service {
 //                    if (!Util.isWifiIsOpen(runtime.getContextProxy().context,runtime))\r
 //                        Util.turnOnWifiForConnect(runtime.getContextProxy().context, runtime);\r
                 }\r
-            } else if ("android.intent.action.SCREEN_OFF".equals(param1Intent.getAction()) && Util.isWifiIsOpen(runtime.getContextProxy().context,runtime)) {\r
-               // CoreService.is_wifi_network_ok = true;\r
+            } else if ("android.intent.action.SCREEN_OFF".equals(param1Intent.getAction()) && Util.isWifiIsOpen(runtime.getContextProxy().context, runtime)) {\r
+                // CoreService.is_wifi_network_ok = true;\r
                 if (!runtime.isNoTurnOffWifiOnScreenOff()) {\r
                     //不关闭wifi when ScreenOff\r
                     ICLogger.i("turnOffWifiForConnect");\r
@@ -364,7 +372,7 @@ public class CoreService extends Service {
 //        Initialize initialize = new Initialize();\r
         CheckSIM checkSIM = new CheckSIM();\r
         this.mKeepAlive = new KeepAlive();\r
-        this.mDeliver = new Deliver(this.connection,this.runtime);\r
+        this.mDeliver = new Deliver(this.connection, this.runtime);\r
 //        initialize.setNext(checkSIM);\r
         checkSIM.setNext(this.mKeepAlive);\r
         this.mKeepAlive.setNext(this.mDeliver);\r
@@ -372,11 +380,10 @@ public class CoreService extends Service {
     }\r
 \r
 \r
-\r
     private AbstractInvokeHandlerService getInvokeHandlerServiceChain() {\r
         ICLogger.i("getInvokeHandlerServiceChain");\r
         SendChatMessage sendChatMessage = new SendChatMessage();\r
-        HeartRateManager heartRateManager= new HeartRateManager(this.runtime,this.connection);\r
+        HeartRateManager heartRateManager = new HeartRateManager(this.runtime, this.connection);\r
         antiservice = new AntiMonitorService();\r
         SilentManager silentManager = SilentManager.getInstance();// new SilentManager();\r
         sendChatMessage.setNext(heartRateManager);\r
@@ -385,33 +392,36 @@ public class CoreService extends Service {
         return sendChatMessage;\r
     }\r
 \r
-    private void resetStepCount(){\r
-        if ( ICJniUtils.isPedometerEnabled() == 0)ICJniUtils.enablePedometer();\r
+    private void resetStepCount() {\r
+        if (ICJniUtils.isPedometerEnabled() == 0) ICJniUtils.enablePedometer();\r
         ICJniUtils.resetStepCount();\r
         SharPreferenceUtil.setPrefInt(this, KEY_STEP_COUNT, 0);\r
         SharPreferenceUtil.setPrefInt(this, KEY_SAVE_STEP_COUNT, 0);\r
-        ICLogger.i("Reset StepCount , "+ICJniUtils.getStepCount());\r
+        ICLogger.i("Reset StepCount , " + ICJniUtils.getStepCount());\r
         this.runtime.setSaveStepCount(0);\r
         this.runtime.setTotalStepCount(0);\r
     }\r
+\r
     private void loadStepCount() {\r
         int i = SharPreferenceUtil.getPrefInt(this, KEY_STEP_COUNT, 0);\r
         int j = SharPreferenceUtil.getPrefInt(this, KEY_SAVE_STEP_COUNT, 0);\r
-        if ( ICJniUtils.isPedometerEnabled() == 0)ICJniUtils.enablePedometer();\r
+        if (ICJniUtils.isPedometerEnabled() == 0) ICJniUtils.enablePedometer();\r
         //ICJniUtils.recoverStepCount();\r
-        if (ICJniUtils.getStepCount()>i){\r
-            i=ICJniUtils.getStepCount();\r
+        if (ICJniUtils.getStepCount() > i) {\r
+            i = ICJniUtils.getStepCount();\r
         }\r
         this.runtime.setSaveStepCount(j);\r
         this.runtime.setTotalStepCount(i);\r
     }\r
-    public void saveStepCount(){\r
+\r
+    public void saveStepCount() {\r
         int i = runtime.getTotalStepCount();\r
         int j = runtime.getSaveStepCount();\r
         SharPreferenceUtil.setPrefInt(this, KEY_STEP_COUNT, i);\r
         SharPreferenceUtil.setPrefInt(this, KEY_SAVE_STEP_COUNT, j);\r
         //ICJniUtils.saveStepCount();\r
     }\r
+\r
     private void setCleanStepCountAlarm() {\r
         /*一天清零一次 计步*/\r
 //        AlarmHelper.setCleanStepCountAlarm(this, 23, 59, STEP_COUNT_ALARM_ACTION);\r
@@ -449,13 +459,13 @@ public class CoreService extends Service {
 //        AlarmHelper.setTimeAlarm(this, 6, (new Random()).nextInt(40) + 20, WEATHER_ALARM);\r
     }\r
 \r
-    private void checkconnection(){\r
+    private void checkconnection() {\r
 \r
-        if (!this.connection.isServerConnected())\r
-        {\r
+        if (!this.connection.isServerConnected()) {\r
             startConnectionRetryTimer();\r
         }\r
     }\r
+\r
     private void wakeUpFromSleep() {\r
         this.startAlarmCount = 0;\r
 //        alarmCycle = 1;\r
@@ -478,11 +488,13 @@ public class CoreService extends Service {
         Toast.makeText((this.runtime.getContextProxy()).context, "从深度睡眠中切换模式,联网中", Toast.LENGTH_SHORT).show();\r
     }\r
 \r
-    public int cmcm_call_eiot_into_powersave_mode() { return 0; }\r
+    public int cmcm_call_eiot_into_powersave_mode() {\r
+        return 0;\r
+    }\r
 \r
 \r
     public PowerManager.WakeLock getWakeLock(int paramInt) {\r
-         PowerManager.WakeLock wakeLock = ((PowerManager)(this.runtime.getContextProxy()).context.getSystemService(POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, MY_WAKE_LOCKTAG);\r
+        PowerManager.WakeLock wakeLock = ((PowerManager) (this.runtime.getContextProxy()).context.getSystemService(POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, MY_WAKE_LOCKTAG);\r
 //        wakeLock.acquire(paramInt*60*1000L);\r
         wakeLock.acquire(3000L);\r
         return wakeLock;\r
@@ -493,11 +505,11 @@ public class CoreService extends Service {
     }\r
 \r
 \r
-\r
-    public Runtime getRuntime(){\r
+    public Runtime getRuntime() {\r
         return runtime;\r
     }\r
-    public NettyConnection getConnection(){\r
+\r
+    public NettyConnection getConnection() {\r
         return connection;\r
     }\r
 \r
@@ -505,21 +517,21 @@ public class CoreService extends Service {
     public void onCreate() {\r
 \r
         log("初始化网络协议服务");\r
-        mProtocolServer=this;\r
+        mProtocolServer = this;\r
 \r
         this.runtime = new Runtime();\r
         this.runtime.setFileDir(getFilesDir());\r
         this.runtime.setCacheDir(getExternalCacheDir());\r
         this.runtime.setDBHelper(new DBHelper(getContentResolver(), this));\r
         this.runtime.setContextProxy(new ContextProxy(this));\r
-        this.runtime.setLbsHelper(new LBSHelper(this,this.runtime.getContextProxy().getWifiManager(), this.runtime));\r
+        this.runtime.setLbsHelper(new LBSHelper(this, this.runtime.getContextProxy().getWifiManager(), this.runtime));\r
 \r
         this.runtime.setHRS(new heartRateStatus());\r
         this.runtime.setUseQueue(true);\r
         this.runtime.initDnsUtil(ICApplication.getInstance().getApplicationContext());\r
 \r
 \r
-        connection=new NettyConnection(new ServerHandler(this),runtime);\r
+        connection = new NettyConnection(new ServerHandler(this), runtime);\r
         this.connectionServiceChain = getConnectionServiceChain();\r
         this.invokeHandlerServiceChain = getInvokeHandlerServiceChain();\r
 //        if (cmcm_call_eiot_into_powersave_mode() == 1) {\r
@@ -527,12 +539,12 @@ public class CoreService extends Service {
 //            return;\r
 //        }\r
 \r
-        smsManager= new ICSmsManager(runtime);\r
+        smsManager = new ICSmsManager(runtime);\r
 \r
         //保证获取正确的计步数据及其他参数初始化\r
         loadStepCount();\r
 \r
-        if (Config.logBootDate(this)){\r
+        if (Config.logBootDate(this)) {\r
             resetStepCount();\r
         }\r
 \r
@@ -547,7 +559,7 @@ public class CoreService extends Service {
                 Config.setTemperatureTestCycle(runtime, 60 * 60);\r
                 Config.setConfigInitFlag(this, 1);\r
             }\r
-        }else if (Config.custom_branch_name.equals("l004")) {\r
+        } else if (Config.custom_branch_name.equals("l004")) {\r
             if (Config.getConfigInitFlag(this) == 0) {\r
                 Config.setLocationMode(this, CUSTOM_MOD8_GPS);\r
                 Config.setLocationCycle(this, 600);\r
@@ -556,8 +568,8 @@ public class CoreService extends Service {
                 Config.setConfigInitFlag(this, 1);\r
             }\r
 \r
-        }else if (Config.custom_branch_name.equals("AK")) {\r
-            if (Config.getConfigInitFlag(this)==0) {\r
+        } else if (Config.custom_branch_name.equals("AK")) {\r
+            if (Config.getConfigInitFlag(this) == 0) {\r
                 Config.setPPGTestCycle(this, 0);\r
                 Config.setTemperatureTestCycle(runtime, 0);\r
                 Config.setConfigInitFlag(this, 1);\r
@@ -570,15 +582,15 @@ public class CoreService extends Service {
 //                    runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
 //                }\r
             }\r
-        }else{\r
+        } else {\r
 \r
-            if (Config.getConfigInitFlag(this)==0) {\r
+            if (Config.getConfigInitFlag(this) == 0) {\r
                 Config.setPPGTestCycle(this, 0);\r
                 Config.setTemperatureTestCycle(runtime, 0);\r
                 Config.setConfigInitFlag(this, 1);\r
             }\r
         }\r
-        Config.setHeartBeatCycle(this,5); //临时设置为3分钟,给L03测试用。测试断线问题未解决,取消测试。\r
+        Config.setHeartBeatCycle(this, 5); //临时设置为3分钟,给L03测试用。测试断线问题未解决,取消测试。\r
         //初始化ServerHeartBeat Cycle\r
         Config.loadHearBeatSetting(runtime);\r
         //初始化PPG,LocationMod,LocationCycle\r
@@ -588,15 +600,13 @@ public class CoreService extends Service {
         Config.loadServerSettings(runtime);\r
 \r
 \r
-\r
-\r
         //初始化温度测试相关参数\r
         //runtime.temperature_adjustValue= TemperatureUtil.getTempAdjustValue();\r
         Config.loadTemperatureSettings(runtime);\r
 \r
 \r
         //加载存储的健康数据校准值\r
-        Config.loadPPG_BPH_BPL_SPO2_adjustvalue(this,runtime);\r
+        Config.loadPPG_BPH_BPL_SPO2_adjustvalue(this, runtime);\r
 \r
         this.connectionServiceChain.processAttach(this.connection, this.runtime);\r
         this.invokeHandlerServiceChain.processAttach(this.connection, this.runtime);\r
@@ -642,30 +652,30 @@ public class CoreService extends Service {
         intentFilter = new IntentFilter();\r
         intentFilter.addAction(ACTION_SEND_EMEGENCY_LOCATION_START);\r
         intentFilter.addAction(ACTION_LOCAL_SOS_ACTION);\r
-        registerReceiver(broadcastSOSReceiver,intentFilter);\r
+        registerReceiver(broadcastSOSReceiver, intentFilter);\r
 \r
 \r
         //初始化Sim信号\r
         this.mSignalUtil = SimSignalUtil.getInstance(this);\r
 \r
         //初始化 电池电量监控工具(内部注册接收电池变化)\r
-        batteryUtil = new BatteryUtil(this.runtime,connection);\r
+        batteryUtil = new BatteryUtil(this.runtime, connection);\r
 \r
         //保证发送心跳时提前获取BatLevel数据\r
-        int batlevel=batteryUtil.getBatteryLevel(this);\r
-        runtime.setBattery(String.format("%03d",batlevel));\r
-        ICLogger.i("Battery get from api "+batlevel);\r
+        int batlevel = batteryUtil.getBatteryLevel(this);\r
+        runtime.setBattery(String.format("%03d", batlevel));\r
+        ICLogger.i("Battery get from api " + batlevel);\r
 \r
 \r
         boolean charging = batteryUtil.isPowerConnected(this);\r
         runtime.setPowerConnected(charging);\r
-        ICLogger.i("Charging  "+charging);\r
+        ICLogger.i("Charging  " + charging);\r
 //        LedUtil.setRedLedOn(false);\r
-        if (Config.isL03Tracker){\r
+        if (Config.isL03Tracker) {\r
 \r
-            if (runtime.isPowerConnected())         {\r
+            if (runtime.isPowerConnected()) {\r
                 LedUtil.setRedLedOn(true);\r
-            }else{\r
+            } else {\r
                 LedUtil.setRedLedOn(false);\r
             }\r
         }\r
@@ -693,7 +703,7 @@ public class CoreService extends Service {
 \r
 \r
         //获取定位时间\r
-        needLocateInAfterHeartBeat=true;\r
+        needLocateInAfterHeartBeat = true;\r
         setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
 \r
         //设置温度测量间隔时间\r
@@ -701,48 +711,48 @@ public class CoreService extends Service {
         setTempAlarm();\r
 \r
         //设置来电模式\r
-        SimSignalUtil.SetRingMode(this, AudioManager.RINGER_MODE_NORMAL,true);\r
-       \r
+        SimSignalUtil.SetRingMode(this, AudioManager.RINGER_MODE_NORMAL, true);\r
+\r
 \r
-        \r
         //备份DB数据到sd cache目录,为调试方便\r
         Util.getDBFile();\r
 //        test(); //test function\r
- //更新MCC MNC\r
+        //更新MCC MNC\r
         CellInfoUtil.setCurrentAttachCellInfo(CoreService.getInstance().runtime);\r
- //更新IMEI\r
+        //更新IMEI\r
         DeviceInfoUtil.updateImei(runtime);\r
 \r
         ReConnectToServer();\r
     }\r
 \r
-    private void test(){\r
+    private void test() {\r
 \r
         ICLogger.i("周一清除所有睡眠数据Record");\r
         runtime.getDbHelper().deleteSleepData();\r
     }\r
 \r
-    public static void DevliverStringMessage(String cmd){\r
-        CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd,"");\r
+    public static void DevliverStringMessage(String cmd) {\r
+        CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd, "");\r
     }\r
-    public static void DevliverStringMessage(String cmd,String str){\r
-        CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd,str);\r
+\r
+    public static void DevliverStringMessage(String cmd, String str) {\r
+        CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd, str);\r
     }\r
 \r
-    public void checkAlarmMessage(){\r
+    public void checkAlarmMessage() {\r
 \r
 \r
-        if (runtime.Fence_Warning_flag>0 &&  Config.needAllwaysAlarmFenceOut){\r
+        if (runtime.Fence_Warning_flag > 0 && Config.needAllwaysAlarmFenceOut) {\r
             runtime.Fence_Warning_flag++;\r
             WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);\r
-            runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_out_wall),2);\r
+            runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_out_wall), 2);\r
         }\r
-        if(runtime.Anti_off_flag>0 && Config.needAllwaysAlarmAntiOff){\r
+        if (runtime.Anti_off_flag > 0 && Config.needAllwaysAlarmAntiOff) {\r
             runtime.Anti_off_flag++;\r
             WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);\r
 \r
             if (Config.A9_noBroadCastActionStrip) {\r
-                if(Config.needBroadcastAntiAlarm) {\r
+                if (Config.needBroadcastAntiAlarm) {\r
 \r
                     AudioService.getInstance().play(runtime.getContextProxy().context.getAssets(), "antioff.mp3");\r
 \r
@@ -751,7 +761,7 @@ public class CoreService extends Service {
                         public void run() {\r
                             AudioService.getInstance().stop();\r
                         }\r
-                    },5000);\r
+                    }, 5000);\r
                     VibrateUtil.getInstance(runtime.getContextProxy().context).VibrateOnOnce(true);\r
 \r
                     try {\r
@@ -766,21 +776,22 @@ public class CoreService extends Service {
         }\r
 \r
     }\r
-    public void checkKeepSitting(){\r
-        String dateyyyyMMDDhhmmss=TimeUtil.getSystemTime3();\r
+\r
+    public void checkKeepSitting() {\r
+        String dateyyyyMMDDhhmmss = TimeUtil.getSystemTime3();\r
         //为了更新 isInSleepRange, 下面的语句必须执行\r
         TimeUtil.getCurrentSleepRecordDate(dateyyyyMMDDhhmmss);\r
-         if(TimeUtil.isInSleepRange == false) { //不在睡眠时间就是久坐时间段。\r
-             if (Runtime.lastSitCheckStepCount == -1){\r
-                 Runtime.lastSitCheckStepCount=runtime.getTotalStepCount();\r
-                 Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();\r
-             }\r
-             int keepsitRange=Config.getKeepSitRangeInMinutes(this);\r
-             int minutes=(int)TimeUtil.diffBetween2DateInMinutes(Runtime.lastSitCheckTiimeyyyyMMddHHmmss,dateyyyyMMDDhhmmss);\r
-             ICLogger.i("SitCheck last SitCheckTime "+ Runtime.lastSitCheckTiimeyyyyMMddHHmmss + " , current checktime "+dateyyyyMMDDhhmmss);\r
-             ICLogger.i("SitCheck minutes "+ minutes + " , keepsitRange "+keepsitRange);\r
-             if (minutes >keepsitRange && keepsitRange>0){\r
-                if ( (runtime.getTotalStepCount() - Runtime.lastSitCheckStepCount)/minutes < Config.KeepSitJudgementRefValue){\r
+        if (TimeUtil.isInSleepRange == false) { //不在睡眠时间就是久坐时间段。\r
+            if (Runtime.lastSitCheckStepCount == -1) {\r
+                Runtime.lastSitCheckStepCount = runtime.getTotalStepCount();\r
+                Runtime.lastSitCheckTiimeyyyyMMddHHmmss = TimeUtil.getSystemTime3();\r
+            }\r
+            int keepsitRange = Config.getKeepSitRangeInMinutes(this);\r
+            int minutes = (int) TimeUtil.diffBetween2DateInMinutes(Runtime.lastSitCheckTiimeyyyyMMddHHmmss, dateyyyyMMDDhhmmss);\r
+            ICLogger.i("SitCheck last SitCheckTime " + Runtime.lastSitCheckTiimeyyyyMMddHHmmss + " , current checktime " + dateyyyyMMDDhhmmss);\r
+            ICLogger.i("SitCheck minutes " + minutes + " , keepsitRange " + keepsitRange);\r
+            if (minutes > keepsitRange && keepsitRange > 0) {\r
+                if ((runtime.getTotalStepCount() - Runtime.lastSitCheckStepCount) / minutes < Config.KeepSitJudgementRefValue) {\r
                     //平均 每分钟活动数 小于参考久坐计步值,表示久坐\r
                     ICLogger.i("SitCheck 平均 每分钟活动数 小于参考久坐计步值,表示久坐");\r
                     WakeLockUtil.ScreenOnWakeLockTemperary(this);\r
@@ -792,43 +803,43 @@ public class CoreService extends Service {
                     }\r
                     runtime.getContextProxy().sendBroadcastSitLongAlarm(); //广播久坐消息\r
                     //提醒后 重置 lastCheckSitTime 以及 lastSitCheckStepCount , 重新计时\r
-                    Runtime.lastSitCheckStepCount=runtime.getTotalStepCount();\r
-                    Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();\r
-                }else{\r
+                    Runtime.lastSitCheckStepCount = runtime.getTotalStepCount();\r
+                    Runtime.lastSitCheckTiimeyyyyMMddHHmmss = TimeUtil.getSystemTime3();\r
+                } else {\r
                     //只要 平均每分钟活动数大于参考值,则重置 lastCheckSitTime 以及 lastSitCheckStepCount\r
                     ICLogger.i("SitCheck 平均每分钟活动数大于参考值,则重置 lastCheckSitTime 以及 lastSitCheckStepCount");\r
-                    Runtime.lastSitCheckStepCount=runtime.getTotalStepCount();\r
-                    Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();\r
+                    Runtime.lastSitCheckStepCount = runtime.getTotalStepCount();\r
+                    Runtime.lastSitCheckTiimeyyyyMMddHHmmss = TimeUtil.getSystemTime3();\r
                 }\r
             }\r
-        }else{\r
-             Runtime.lastSitCheckStepCount=-1; //不在时间段就重置数据,以便下一次使用能过重新开始计数。\r
+        } else {\r
+            Runtime.lastSitCheckStepCount = -1; //不在时间段就重置数据,以便下一次使用能过重新开始计数。\r
         }\r
 \r
 \r
     }\r
 \r
-    public void updateSleepDate(){\r
-        String dateyyyyMMDDhhmmss=TimeUtil.getSystemTime3();\r
-        String sleepdate=TimeUtil.getCurrentSleepRecordDate(dateyyyyMMDDhhmmss);\r
-        ICLogger.i("updateSleepDate "+sleepdate);\r
-        if(TimeUtil.isInSleepRange == true) {\r
-            runtime.getDbHelper().insertSleepRecord(new SleepRecord(dateyyyyMMDDhhmmss,sleepdate,runtime.getTotalStepCount()));\r
-            runtime.sleepDataReported=false; //只要记录过数据 就证明有数据没有report\r
-        }else{\r
+    public void updateSleepDate() {\r
+        String dateyyyyMMDDhhmmss = TimeUtil.getSystemTime3();\r
+        String sleepdate = TimeUtil.getCurrentSleepRecordDate(dateyyyyMMDDhhmmss);\r
+        ICLogger.i("updateSleepDate " + sleepdate);\r
+        if (TimeUtil.isInSleepRange == true) {\r
+            runtime.getDbHelper().insertSleepRecord(new SleepRecord(dateyyyyMMDDhhmmss, sleepdate, runtime.getTotalStepCount()));\r
+            runtime.sleepDataReported = false; //只要记录过数据 就证明有数据没有report\r
+        } else {\r
             if (runtime.sleepDataReported == false) {\r
                 //calculate sleep data and report it randomly within 1 hour\r
                 runtime.sleepDataReported = true;\r
                 int score = runtime.getDbHelper().querySleepScore(sleepdate);\r
                 if (score > 0) {\r
-                    ICLogger.i("已经有"+sleepdate+"的睡眠数据!");\r
+                    ICLogger.i("已经有" + sleepdate + "的睡眠数据!");\r
                 } else {\r
                     SleepInfo si = SleepInfo.getInstance();\r
                     si.setDate(sleepdate);\r
                     si.calculate_sleepInfo(runtime);\r
 \r
                     runtime.getDbHelper().updateSleepInfo(si);\r
-                    if (TimeUtil.getWeek().equals("周一")){\r
+                    if (TimeUtil.getWeek().equals("周一")) {\r
                         ICLogger.i("周一清除所有睡眠数据Record");\r
                         runtime.getDbHelper().deleteSleepData();\r
                     }\r
@@ -844,12 +855,12 @@ public class CoreService extends Service {
 //                    Observable.timer(randomint * 60 * 1000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
 //                        public void call(Long param1Long) {\r
 \r
-                            ICLogger.i("Send  sleep info " + si.getCurrentDate()\r
-                                    + " deep " + si.getDeepsleep_minutes()\r
-                                    + " light " + si.getLightsleep_minutes()\r
-                                    + " score " + si.getScore()\r
-                            );\r
-                            Deliver.sendLocationMSG(protocolAPIHelper.getSleepMSG(SleepInfo.getInstance()));\r
+                    ICLogger.i("Send  sleep info " + si.getCurrentDate()\r
+                            + " deep " + si.getDeepsleep_minutes()\r
+                            + " light " + si.getLightsleep_minutes()\r
+                            + " score " + si.getScore()\r
+                    );\r
+                    Deliver.sendLocationMSG(protocolAPIHelper.getSleepMSG(SleepInfo.getInstance()));\r
 //                        }\r
 //                    });\r
 \r
@@ -857,8 +868,9 @@ public class CoreService extends Service {
             }\r
         }\r
     }\r
+\r
     public int onStartCommand(Intent paramIntent, int paramInt1, int paramInt2) {\r
-        if (paramIntent != null && paramIntent.getAction()!=null) {\r
+        if (paramIntent != null && paramIntent.getAction() != null) {\r
             StringBuilder stringBuilder = new StringBuilder();\r
             stringBuilder.append("onStartCommand action=");\r
             stringBuilder.append(paramIntent.getAction());\r
@@ -915,13 +927,13 @@ public class CoreService extends Service {
                 if (Config.LOG_TOFILE) ICLogger.logToFile("alarmCycle", stringBuilder1.toString());\r
 //                this.locationClient.triggerLocationProcess();\r
 \r
-            }else if (Constants.ACTION_CHECK_SERVER_RESPONSE.equals(paramIntent.getAction())) {\r
+            } else if (Constants.ACTION_CHECK_SERVER_RESPONSE.equals(paramIntent.getAction())) {\r
                 //暂时还使用 ScheduledThreadPoolExecutor , 时间要求不是那么的严格\r
-            }else if (Constants.ACTION_RETRY_SERVER_CONNECT.equals(paramIntent.getAction())) {\r
+            } else if (Constants.ACTION_RETRY_SERVER_CONNECT.equals(paramIntent.getAction())) {\r
                 //暂时还使用 ScheduledThreadPoolExecutor , 时间要求不是那么的严格\r
-            }else if (Constants.ACTION_CHECK_LOCATION_RESULT.equals(paramIntent.getAction())) {\r
+            } else if (Constants.ACTION_CHECK_LOCATION_RESULT.equals(paramIntent.getAction())) {\r
                 locationClient.waitAndSendLocation();\r
-            }else if (Constants.SLEEP_ALARM.equals(paramIntent.getAction())) {\r
+            } else if (Constants.SLEEP_ALARM.equals(paramIntent.getAction())) {\r
                 StringBuilder stringBuilder1;\r
                 ICLogger.i("SLEEP_ALARM");\r
                 is_allowed_in_sleep_mode = 1;\r
@@ -990,13 +1002,13 @@ public class CoreService extends Service {
                     if (connection.isServerConnected() && runtime.isServerProtocolConnected()) {\r
                         this.mKeepAlive.onHeartAlarm(this.connection, this.runtime);\r
                     } else {\r
-                       // if (this.mKeepAlive.is_retry_time_above_limit()) {\r
-                            ICLogger.i("check 发送心跳包时,如果发现服务器没有响应,或者socket连接,则重新尝试连接服务器!");\r
-                            connection.disconnectServer();\r
-                            this.startConnectionRetryTimer();\r
-                       // }else{\r
-                      //      ICLogger.i("");\r
-                      //  }\r
+                        // if (this.mKeepAlive.is_retry_time_above_limit()) {\r
+                        ICLogger.i("check 发送心跳包时,如果发现服务器没有响应,或者socket连接,则重新尝试连接服务器!");\r
+                        connection.disconnectServer();\r
+                        this.startConnectionRetryTimer();\r
+                        // }else{\r
+                        //      ICLogger.i("");\r
+                        //  }\r
                     }\r
                     setHeartAlarm();\r
                     if (Config.LOG_TOFILE)\r
@@ -1028,8 +1040,8 @@ public class CoreService extends Service {
                 LocationClient.setForceLocation(1);\r
                 setLocationAlarm(runtime.getLocationInstance().getWorkingMod());//同时重置alarm并触发定位\r
 \r
-            }else if(ACTION_CHECK_ANTIOFF_EVENT.equals(paramIntent.getAction())){\r
-                if (antiservice.check_ant_event()==1){\r
+            } else if (ACTION_CHECK_ANTIOFF_EVENT.equals(paramIntent.getAction())) {\r
+                if (antiservice.check_ant_event() == 1) {\r
                     setAntiCheckAlarm();\r
                 }\r
             }\r
@@ -1041,113 +1053,121 @@ public class CoreService extends Service {
         return Service.START_NOT_STICKY;\r
     }\r
 \r
-    public boolean onUnbind(Intent paramIntent) { return false; }\r
+    public boolean onUnbind(Intent paramIntent) {\r
+        return false;\r
+    }\r
 \r
     //每一分钟设置一次\r
     public void setAlarm(int paramInt) {\r
 //        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,paramInt,ACTION_ALARM);\r
     }\r
 \r
-    public void setHeartRateDetectAlarm(int heartRateDetectAlarmCycle){\r
+    public void setHeartRateDetectAlarm(int heartRateDetectAlarmCycle) {\r
         if (Config.noPPGSensor)\r
-            return ;\r
-        if (heartRateDetectAlarmCycle>1)\r
-        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,heartRateDetectAlarmCycle,ACTION_HEATR_RATE_START);\r
+            return;\r
+        if (heartRateDetectAlarmCycle > 1)\r
+            AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, heartRateDetectAlarmCycle, ACTION_HEATR_RATE_START);\r
     }\r
-    public void setAntiCheckAlarm(){\r
-        AlarmHelper.setRealTimeAlarmInMicorSeconds(runtime.getContextProxy().context,500,ACTION_CHECK_ANTIOFF_EVENT);\r
+\r
+    public void setAntiCheckAlarm() {\r
+        AlarmHelper.setRealTimeAlarmInMicorSeconds(runtime.getContextProxy().context, 500, ACTION_CHECK_ANTIOFF_EVENT);\r
     }\r
 \r
 \r
-    public void setEmegencyLocationSTOPAlarm(int delayTimeInMinutes){\r
-        StringBuilder sb=new StringBuilder();\r
-        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,delayTimeInMinutes, ACTION_SEND_EMEGENCY_LOCATION_STOP);\r
-        sb.append(" tEmegencyLocationSTOPAlarm  "+ACTION_SEND_EMEGENCY_LOCATION_STOP);\r
+    public void setEmegencyLocationSTOPAlarm(int delayTimeInMinutes) {\r
+        StringBuilder sb = new StringBuilder();\r
+        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, delayTimeInMinutes, ACTION_SEND_EMEGENCY_LOCATION_STOP);\r
+        sb.append(" tEmegencyLocationSTOPAlarm  " + ACTION_SEND_EMEGENCY_LOCATION_STOP);\r
 //        ICLogger.i(sb.toString());\r
-        if (Config.LOG_TOFILE)ICLogger.logToFile("alarmCycle",sb.toString());\r
+        if (Config.LOG_TOFILE) ICLogger.logToFile("alarmCycle", sb.toString());\r
     }\r
+\r
     public void setLocationAlarm(int mod) {\r
 //        int mod=runtime.getLocationInstance().getWorkingMod();\r
-        StringBuilder sb=new StringBuilder();\r
-        int cycle=60;\r
-        switch(mod){\r
+        StringBuilder sb = new StringBuilder();\r
+        int cycle = 60;\r
+        switch (mod) {\r
             case EMERGNECY_MOD:\r
             case REALTIME_MOD:\r
-                cycle=60;\r
+                cycle = 60;\r
                 break;\r
             case NORMAL_MOD:\r
-                cycle=15*60;\r
+                cycle = 15 * 60;\r
                 break;\r
             case LOWPOWER_MOD:\r
-                cycle=60*60;\r
+                cycle = 60 * 60;\r
                 break;\r
             case CUSTOM_MOD:\r
             case CUSTOM_MOD8_GPS:\r
             case CUSTOM_MOD8_WIFI:\r
-                cycle=runtime.getLocationInstance().getLocation_cycle();\r
+                cycle = runtime.getLocationInstance().getLocation_cycle();\r
                 break;\r
         }\r
 \r
-        if (Config.noLocationCycle==false)\r
-            AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context,cycle, ACTION_LOCATION_ALARM);\r
+        if (Config.noLocationCycle == false)\r
+            AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context, cycle, ACTION_LOCATION_ALARM);\r
         else\r
-            ICLogger.i("skip set LocationAlarm " );\r
-        sb.append(" setLocationAlarm  "+ACTION_LOCATION_ALARM+" mod "+mod+", cycle in Seconds "+cycle);\r
+            ICLogger.i("skip set LocationAlarm ");\r
+        sb.append(" setLocationAlarm  " + ACTION_LOCATION_ALARM + " mod " + mod + ", cycle in Seconds " + cycle);\r
         ICLogger.i(sb.toString());\r
-        if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());\r
+        if (Config.LOG_TOFILE)\r
+            FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", sb.toString());\r
         locationClient.triggerLocationProcess();\r
 \r
     }\r
 \r
-    public void setHeartAlarm(){\r
+    public void setHeartAlarm() {\r
 //        int mod=runtime.getLocationInstance().getWorkingMod();\r
-        StringBuilder sb=new StringBuilder();\r
-        int cycle=runtime.getHeartBeatCycle();\r
+        StringBuilder sb = new StringBuilder();\r
+        int cycle = runtime.getHeartBeatCycle();\r
 \r
         //心跳指令默认设置\r
-        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,cycle, HEART_ALARM);\r
-        sb.append(" setHeartAlarm  "+HEART_ALARM+", cycle "+cycle);\r
+        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, cycle, HEART_ALARM);\r
+        sb.append(" setHeartAlarm  " + HEART_ALARM + ", cycle " + cycle);\r
 //        locationClient.triggerLocationProcess();\r
         ICLogger.i(sb.toString());\r
-        FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());\r
+        FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", sb.toString());\r
 \r
 //        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1, HEART_ALARM);\r
     }\r
-    public void setAntiAlarm(){\r
+\r
+    public void setAntiAlarm() {\r
 //        int mod=runtime.getLocationInstance().getWorkingMod();\r
-        StringBuilder sb=new StringBuilder();\r
-        int cycle=runtime.anti_test_cycle;\r
+        StringBuilder sb = new StringBuilder();\r
+        int cycle = runtime.anti_test_cycle;\r
 \r
         //心跳指令默认设置为3分钟\r
-        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,cycle, ANTI_ALARM);\r
-        sb.append(" setHeartAlarm  "+ANTI_ALARM+", cycle "+cycle);\r
+        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, cycle, ANTI_ALARM);\r
+        sb.append(" setHeartAlarm  " + ANTI_ALARM + ", cycle " + cycle);\r
 //        locationClient.triggerLocationProcess();\r
         ICLogger.i(sb.toString());\r
-        FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());\r
+        FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", sb.toString());\r
 \r
 //        AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1, HEART_ALARM);\r
     }\r
-    public void setTempAlarm(){\r
+\r
+    public void setTempAlarm() {\r
 //        int mod=runtime.getLocationInstance().getWorkingMod();\r
-        StringBuilder sb=new StringBuilder();\r
-        int cycle=runtime.temp_test_Cycle;\r
+        StringBuilder sb = new StringBuilder();\r
+        int cycle = runtime.temp_test_Cycle;\r
 \r
-        if(Config.noTempSensor)\r
-                    return;\r
-        if (cycle>1) {\r
+        if (Config.noTempSensor)\r
+            return;\r
+        if (cycle > 1) {\r
             AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context, cycle, TEMP_ALARM);\r
             sb.append(" setTempAlarm  " + TEMP_ALARM + ", cycle " + cycle);\r
-        }else {\r
-            sb.append(" setTempAlarm  " + TEMP_ALARM + ", cycle " + cycle+"<=1 skip!");\r
+        } else {\r
+            sb.append(" setTempAlarm  " + TEMP_ALARM + ", cycle " + cycle + "<=1 skip!");\r
         }\r
 //        locationClient.triggerLocationProcess();\r
         ICLogger.i(sb.toString());\r
-        FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());\r
+        FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", sb.toString());\r
 \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
+        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);\r
         Intent intent = new Intent(this, CoreService.class);\r
         intent.setAction(ACTION_ALARM_ADD_DATAPOINTS);\r
         PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, FLAG_UPDATE_CURRENT);\r
@@ -1157,11 +1177,13 @@ public class CoreService extends Service {
         stringBuilder.append("interval=");\r
         stringBuilder.append(paramLong);\r
         ICLogger.i(stringBuilder.toString());\r
-        AlarmHelper.setRealTimeAlarm( runtime.getContextProxy().context,(int)((System.currentTimeMillis() + paramLong)/1000),ACTION_ALARM_ADD_DATAPOINTS);\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
-        public IBinder onBind(Intent param1Intent) { return null; }\r
+        public IBinder onBind(Intent param1Intent) {\r
+            return null;\r
+        }\r
 \r
         /*给 API >= 18 的平台上用的灰色保活手段*/\r
         public int onStartCommand(Intent param1Intent, int param1Int1, int param1Int2) {\r
@@ -1180,7 +1202,7 @@ public class CoreService extends Service {
         }\r
 \r
         public void handleMessage(Message param1Message) {\r
-            CoreService coreService = (CoreService)this.mReference.get();\r
+            CoreService coreService = (CoreService) this.mReference.get();\r
             if (coreService == null)\r
                 return;\r
             coreService.invokeHandlerServiceChain.processUserRequest(param1Message, coreService.connection, coreService.runtime);\r
@@ -1189,56 +1211,57 @@ public class CoreService extends Service {
 \r
     private static final String TAG = "ICSrv." + CoreService.class.getSimpleName();\r
 \r
-    private ScheduledThreadPoolExecutor mTimer_retry_connect=null;\r
+    private ScheduledThreadPoolExecutor mTimer_retry_connect = null;\r
+\r
+    private static int retry_connect_count = 0;  //当前重试次数\r
+    private static int retry_connect_max_times = 6; //最大重试次数 6次 , 即只重试2分钟,下一次重试将在下一个心跳包时进行。\r
+    private static int retry_cocnnect_cycle = 20; //重试间隔20秒\r
 \r
-    private static int retry_connect_count=0;  //当前重试次数\r
-    private static int retry_connect_max_times=6; //最大重试次数 6次 , 即只重试2分钟,下一次重试将在下一个心跳包时进行。\r
-    private static int retry_cocnnect_cycle=20; //重试间隔20秒\r
     private void log(String msg) {\r
-        ICLogger.log(TAG,msg);\r
+        ICLogger.log(TAG, msg);\r
     }\r
 \r
-    public static CoreService getInstance(){\r
+    public static CoreService getInstance() {\r
         return mProtocolServer;\r
     }\r
 \r
-    public void startConnectionRetryTimer(){\r
+    public void startConnectionRetryTimer() {\r
         //联网再重试连接服务器, 不能够联网的情况下不管是不是有sim卡,以及是否联网,都进行重试,以便处理下面情况:\r
         //1、sim卡接触不良,掉卡,可以尝试用此法恢复\r
         //2、网络信号不好,造成临时掉线,但是恢复慢或不恢复,可以用此法尝试恢复\r
 //        if (SimSignalUtil.checkNet(runtime.getContextProxy().context) ) {\r
-             stopConnectionRetryTimer();\r
-            if (mTimer_retry_connect == null) {\r
-                mTimer_retry_connect = new ScheduledThreadPoolExecutor(10);\r
-            }\r
-            //如果开始进行连接重\r
-                // {\r
-            // 试,证明网络断开的,那么KeepAlive也需要重连(心跳包)\r
-            retry_connect_count=0;\r
-            KeepAlive.isConnected = false;\r
-            if (mTimer_retry_connect != null) {\r
-                mTimer_retry_connect.scheduleAtFixedRate(new Runnable() {\r
-                    @Override\r
-                    public void run() {\r
-                        ReConnectToServer();\r
-                    }\r
-                }, 5000, 20000, TimeUnit.MILLISECONDS); //每次都是断网才需要重连,delay 5秒重连,并且每20秒重试一次\r
-            }\r
+        stopConnectionRetryTimer();\r
+        if (mTimer_retry_connect == null) {\r
+            mTimer_retry_connect = new ScheduledThreadPoolExecutor(10);\r
+        }\r
+        //如果开始进行连接重\r
+        // {\r
+        // 试,证明网络断开的,那么KeepAlive也需要重连(心跳包)\r
+        retry_connect_count = 0;\r
+        KeepAlive.isConnected = false;\r
+        if (mTimer_retry_connect != null) {\r
+            mTimer_retry_connect.scheduleAtFixedRate(new Runnable() {\r
+                @Override\r
+                public void run() {\r
+                    ReConnectToServer();\r
+                }\r
+            }, 5000, 20000, TimeUnit.MILLISECONDS); //每次都是断网才需要重连,delay 5秒重连,并且每20秒重试一次\r
+        }\r
 //        }\r
     }\r
 \r
-    private static int no_network_Heartbeats_Count=0;\r
+    private static int no_network_Heartbeats_Count = 0;\r
 \r
-    public void ReConnectToServer(){\r
+    public void ReConnectToServer() {\r
 \r
-        if (SimSignalUtil.checkNet(runtime.getContextProxy().context) ) {\r
+        if (SimSignalUtil.checkNet(runtime.getContextProxy().context)) {\r
             //里面如果连接成功 connectionOpen 会先发送 AP00 登录包 和发送AP03 心跳包 ,\r
             // isServerConnected 成功则停止重试, KeepAlive会检测AP03心跳包的成功与否。此处只管socket连接是否成功\r
             if (connection.isServerConnected()) {\r
                 ICLogger.i("retry  如果连接成功则停止重试!");\r
-                no_network_Heartbeats_Count=0;\r
+                no_network_Heartbeats_Count = 0;\r
                 stopConnectionRetryTimer();\r
-            }else {\r
+            } else {\r
                 if (retry_connect_count >= retry_connect_max_times) {\r
 \r
                     ICLogger.i("retry " + retry_connect_count + " 次 >= " + retry_connect_max_times + " ,停止重试!等待下一次心跳再重试!");\r
@@ -1256,21 +1279,21 @@ public class CoreService extends Service {
 \r
                 }\r
             }\r
-        }else{\r
+        } else {\r
             //没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网\r
-            ICLogger.i("retry "+no_network_Heartbeats_Count+" 没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网!");\r
+            ICLogger.i("retry " + no_network_Heartbeats_Count + " 没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网!");\r
             no_network_Heartbeats_Count++;\r
             stopConnectionRetryTimer();\r
         }\r
-        if( no_network_Heartbeats_Count >10){\r
-            ICLogger.i("当前第"+no_network_Heartbeats_Count+"次心跳都没有连接服务器成功 > 10 ,重置SIM卡尝试重新注册网络!");\r
+        if (no_network_Heartbeats_Count > 10) {\r
+            ICLogger.i("当前第" + no_network_Heartbeats_Count + "次心跳都没有连接服务器成功 > 10 ,重置SIM卡尝试重新注册网络!");\r
             SimSignalUtil.send_at_to_reset_simcard(runtime);\r
-            no_network_Heartbeats_Count=0;//重置Sim卡后重置计数。防止后面多次重置Sim卡。\r
+            no_network_Heartbeats_Count = 0;//重置Sim卡后重置计数。防止后面多次重置Sim卡。\r
         }\r
     }\r
 \r
-    public void stopConnectionRetryTimer(){\r
-        if (mTimer_retry_connect !=null){\r
+    public void stopConnectionRetryTimer() {\r
+        if (mTimer_retry_connect != null) {\r
             mTimer_retry_connect.shutdownNow();\r
 //            while(!mTimer_retry_connect.isTerminated())\r
 //            {\r
@@ -1286,13 +1309,11 @@ public class CoreService extends Service {
         }\r
     }\r
 \r
-    private boolean needLogin(){\r
+    private boolean needLogin() {\r
         return true;\r
     }\r
 \r
 \r
-\r
-\r
     @Override\r
     public void onDestroy() {\r
         super.onDestroy();\r
@@ -1309,7 +1330,7 @@ public class CoreService extends Service {
 \r
     }\r
 \r
-    public void disconnect_server(){\r
+    public void disconnect_server() {\r
         this.connection.close();\r
     }\r
 \r
index 9a2adc2..299bcb4 100644 (file)
@@ -3,41 +3,55 @@ package com.enqualcomm.support.bean;
 import java.util.ArrayList;\r
 \r
 public class StringMessage {\r
-  ArrayList<byte[]> bs;\r
-  \r
-  private String cache;\r
-  \r
-  protected String[] fragments;\r
-  \r
-  public boolean u8;\r
-  \r
-  public StringMessage(String paramString) {\r
-    this.cache = paramString;\r
-    this.u8 = true;\r
-  }\r
-  \r
-  public StringMessage(String[] paramArrayOfString) { this(paramArrayOfString, true); }\r
-  \r
-  public StringMessage(String[] paramArrayOfString, ArrayList<byte[]> paramArrayList) {\r
-    this.fragments = paramArrayOfString;\r
-    this.bs = paramArrayList;\r
-  }\r
-  \r
-  public StringMessage(String[] paramArrayOfString, boolean paramBoolean) {\r
-    this.fragments = paramArrayOfString;\r
-    this.u8 = paramBoolean;\r
-  }\r
-  \r
-  public String[] all() { return this.fragments; }\r
-  \r
-  public String cmd() { return this.fragments[0]; }\r
-  \r
-  public String isFromCache() { return this.cache; }\r
-  \r
-  public void refresh(String paramString) { this.cache = paramString; }\r
-  \r
-  public int size() { return (this.fragments != null) ? this.fragments.length : 0; }\r
-  \r
-  public ArrayList<byte[]> source() { return this.bs; }\r
+    ArrayList<byte[]> bs;\r
+\r
+    private String cache;\r
+\r
+    protected String[] fragments;\r
+\r
+    public boolean u8;\r
+\r
+    public StringMessage(String paramString) {\r
+        this.cache = paramString;\r
+        this.u8 = true;\r
+    }\r
+\r
+    public StringMessage(String[] paramArrayOfString) {\r
+        this(paramArrayOfString, true);\r
+    }\r
+\r
+    public StringMessage(String[] paramArrayOfString, ArrayList<byte[]> paramArrayList) {\r
+        this.fragments = paramArrayOfString;\r
+        this.bs = paramArrayList;\r
+    }\r
+\r
+    public StringMessage(String[] paramArrayOfString, boolean paramBoolean) {\r
+        this.fragments = paramArrayOfString;\r
+        this.u8 = paramBoolean;\r
+    }\r
+\r
+    public String[] all() {\r
+        return this.fragments;\r
+    }\r
+\r
+    public String cmd() {\r
+        return this.fragments[0];\r
+    }\r
+\r
+    public String isFromCache() {\r
+        return this.cache;\r
+    }\r
+\r
+    public void refresh(String paramString) {\r
+        this.cache = paramString;\r
+    }\r
+\r
+    public int size() {\r
+        return (this.fragments != null) ? this.fragments.length : 0;\r
+    }\r
+\r
+    public ArrayList<byte[]> source() {\r
+        return this.bs;\r
+    }\r
 }\r
 \r
index 0156bf5..c082c5f 100644 (file)
@@ -4,6 +4,7 @@ import android.app.AlarmManager;
 import android.app.PendingIntent;\r
 import android.content.BroadcastReceiver;\r
 import android.content.Context;\r
+import android.content.IClipboard;\r
 import android.content.Intent;\r
 import android.net.ConnectivityManager;\r
 import android.net.wifi.WifiConfiguration;\r
@@ -54,76 +55,77 @@ import static com.enqualcomm.support.bean.Content.CONTACT_CATEGORY_GROUP;
  * 负责发送除了login,心跳之外的所有指令\r
  */\r
 public class Deliver extends AbstractConnectionService {\r
-  private static final String RECEIVE_WAKE_LOCKTAG = "ReceiveWakelockTag";\r
-  \r
-  private static PowerManager.WakeLock WifiListWakeLock;\r
-  \r
-  public static boolean haveSendH42 = false;\r
-  \r
-  private static int isAppSetWifi = 0;\r
-\r
-\r
-\r
-  private static ReentrantLock mLock = new ReentrantLock();\r
-  private static ReentrantLock lock = new ReentrantLock();\r
-  private static Condition mCondition = mLock.newCondition();\r
-\r
-  public static LinkedBlockingDeque<StringMessage> queue = new LinkedBlockingDeque(200);\r
-\r
-  private static FileCache fileCache;\r
-  private static NettyConnection connection;\r
-\r
-  public static boolean is_active_location = false;\r
-  \r
-  private static PowerManager.WakeLock ReceiveWakeLock;\r
-  \r
-  private Handler delayHandler;\r
-  \r
-  private Runnable delayTh;\r
-  \r
-  private Connection mConnection;\r
-\r
-  private ConWifiReceiver mMyWifiReceiver;\r
-  \r
-  private static Runtime mRuntime;\r
-  \r
-  private static boolean wakeLockWifiList = false;\r
-  \r
-  private static boolean wakeLockWifiSet = false;\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
-\r
-  static {\r
-    delaySendMSG = new Runnable() {\r
-      @Override\r
-      public void run() {\r
-        if (getAndSendMsgFromQueue()==true){\r
-          mSendMSGHandler.postDelayed(delaySendMSG,5000L);\r
+    private static final String RECEIVE_WAKE_LOCKTAG = "ReceiveWakelockTag";\r
+    private static final String TAG = "Deliver";\r
+\r
+    private static PowerManager.WakeLock WifiListWakeLock;\r
+\r
+    public static boolean haveSendH42 = false;\r
+\r
+    private static int isAppSetWifi = 0;\r
+\r
+\r
+    private static ReentrantLock mLock = new ReentrantLock();\r
+    private static ReentrantLock lock = new ReentrantLock();\r
+    private static Condition mCondition = mLock.newCondition();\r
+\r
+    public static LinkedBlockingDeque<StringMessage> queue = new LinkedBlockingDeque(200);\r
+\r
+    private static FileCache fileCache;\r
+    private static NettyConnection connection;\r
+\r
+    public static boolean is_active_location = false;\r
+\r
+    private static PowerManager.WakeLock ReceiveWakeLock;\r
+\r
+    private Handler delayHandler;\r
+\r
+    private Runnable delayTh;\r
+\r
+    private Connection mConnection;\r
+\r
+    private ConWifiReceiver mMyWifiReceiver;\r
+\r
+    private static Runtime mRuntime;\r
+\r
+    private static boolean wakeLockWifiList = false;\r
+\r
+    private static boolean wakeLockWifiSet = false;\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
-    };\r
-  }\r
-  public Deliver(NettyConnection paramNettyConnection, Runtime paramRuntime) {\r
-    connection = paramNettyConnection;\r
-    mRuntime = paramRuntime;\r
-    //把queue 保存在磁盘中的缓存文件\r
-    //此文件只缓存 除了 登录指令AP00,心跳AP03以及voice 分包指令以外的需要上传的指令。初步规划为 定位AP01和心率/血压 APHT\r
-    fileCache = new FileCache(paramRuntime.getFileDir());\r
-  }\r
-\r
-  private static boolean checkNetwork(){\r
-    boolean ret=true;\r
-    boolean dateConnectionLinked=SimSignalUtil.checkNet(mRuntime.getContextProxy().context);\r
-\r
-    if (dateConnectionLinked) {\r
+    });\r
+\r
+    static {\r
+        delaySendMSG = new Runnable() {\r
+            @Override\r
+            public void run() {\r
+                if (getAndSendMsgFromQueue() == true) {\r
+                    mSendMSGHandler.postDelayed(delaySendMSG, 5000L);\r
+                }\r
+            }\r
+        };\r
+    }\r
+\r
+    public Deliver(NettyConnection paramNettyConnection, Runtime paramRuntime) {\r
+        connection = paramNettyConnection;\r
+        mRuntime = paramRuntime;\r
+        //把queue 保存在磁盘中的缓存文件\r
+        //此文件只缓存 除了 登录指令AP00,心跳AP03以及voice 分包指令以外的需要上传的指令。初步规划为 定位AP01和心率/血压 APHT\r
+        fileCache = new FileCache(paramRuntime.getFileDir());\r
+    }\r
+\r
+    private static boolean checkNetwork() {\r
+        boolean ret = true;\r
+        boolean dateConnectionLinked = SimSignalUtil.checkNet(mRuntime.getContextProxy().context);\r
+\r
+        if (dateConnectionLinked) {\r
 //      int signal = mRuntime.getSignalStrength();\r
 //      int networkType = SimSignalUtil.getInstance((mRuntime.getContextProxy()).context).getNetworkType();\r
 //      if (signal + 110 < getMinSignalStrength(networkType)) {\r
@@ -131,581 +133,528 @@ public class Deliver extends AbstractConnectionService {
 //        //如果信号不好,把msg放回去\r
 //        ret = false;\r
 //      }\r
-      if (connection.isServerConnected() == false || !mRuntime.isServerProtocolConnected()) {\r
-        ICLogger.i("服务器无法访问,或者协议状态失常");\r
-        ret = false;\r
-      }\r
-    }else{\r
-      ICLogger.i("数据网络没有连接");\r
-      ret=false;\r
+            if (connection.isServerConnected() == false || !mRuntime.isServerProtocolConnected()) {\r
+                ICLogger.i("服务器无法访问,或者协议状态失常");\r
+                ret = false;\r
+            }\r
+        } else {\r
+            ICLogger.i("数据网络没有连接");\r
+            ret = false;\r
+        }\r
+        return ret;\r
     }\r
-    return ret;\r
-  }\r
-  public static void triggerSendThread() {\r
+\r
+    public static void triggerSendThread() {\r
 //    mSendMSGHandler.post(delaySendMSG);\r
-    ICLogger.i("triggerSendThread ");\r
-    delaySendMSG.run();\r
+        ICLogger.i("triggerSendThread ");\r
+        delaySendMSG.run();\r
 //    mSendMSGHandler.sendEmptyMessage(1);\r
-  }\r
-  private static boolean NeedCheckServerResponse=true;\r
-  private static boolean ServerResponsed=false;\r
-  private static String needCheckResponseCMD=null;\r
-  private static int CheckCount=0;\r
-\r
-  private static void checkNeedServerResponse(String cmd){\r
-      if (cmd!=null && Config.protocol_no==Config.PROTOCOL_FZD  &&\r
-              (protocolAPIHelper.isCmdStr(cmd).equals("UD") || protocolAPIHelper.isCmdStr(cmd).equals("UD2"))){\r
-        NeedCheckServerResponse=false;\r
-      }else{\r
-        NeedCheckServerResponse=true;\r
-      }\r
-  }\r
-\r
-  public static boolean getAndSendMsgFromQueue(){\r
-    boolean ret=false;\r
-    if (mRuntime.getUseQueue()) {\r
-      ICLogger.i("queue locked "+mLock.isLocked());\r
-      if(mLock.isLocked()) return false;\r
-      mLock.lock();\r
-      try\r
-      {\r
-        String str;\r
-        //如果没有数据从缓存中尝试读取\r
+    }\r
+\r
+    private static boolean NeedCheckServerResponse = true;\r
+    private static boolean ServerResponsed = false;\r
+    private static String needCheckResponseCMD = null;\r
+    private static int CheckCount = 0;\r
+\r
+    private static void checkNeedServerResponse(String cmd) {\r
+        if (cmd != null && Config.protocol_no == Config.PROTOCOL_FZD &&\r
+                (protocolAPIHelper.isCmdStr(cmd).equals("UD") || protocolAPIHelper.isCmdStr(cmd).equals("UD2"))) {\r
+            NeedCheckServerResponse = false;\r
+        } else {\r
+            NeedCheckServerResponse = true;\r
+        }\r
+    }\r
+\r
+    public static boolean getAndSendMsgFromQueue() {\r
+        boolean ret = false;\r
+        if (mRuntime.getUseQueue()) {\r
+            ICLogger.i("queue locked " + mLock.isLocked());\r
+            if (mLock.isLocked()) return false;\r
+            mLock.lock();\r
+            try {\r
+                String str;\r
+                //如果没有数据从缓存中尝试读取\r
 //        if (queue.isEmpty())\r
 //          loadMessage2Queue();\r
 \r
-        //检查刚刚发送出去的包是否需要检查server response\r
-        checkNeedServerResponse(needCheckResponseCMD);\r
-\r
-        //如果需要,且没有服务器反馈\r
-        if (NeedCheckServerResponse==true && ServerResponsed==false){\r
-          //刚刚发送的包不为空,且检测次数小于3,则保留数据,进行下一次重试。\r
-          if (needCheckResponseCMD!=null && CheckCount < 3) {\r
-            //如果cmd有效,且尝试次数小于3, 没有收到反馈的情况下,可以重新插入queue进行下一次尝试!\r
-            ICLogger.i("checkSrvResponse "+CheckCount+" times for "+needCheckResponseCMD);\r
-            if (!ServiceUtil.offerQueue(new StringMessage(needCheckResponseCMD), true)) {\r
-              ICLogger.i("checkSrvResponse failed ,重新添加MessageQueue 已满,数据将被丢弃!" + needCheckResponseCMD);\r
-              if (Config.LOG_TOFILE)\r
-                ICLogger.logToFile("APILog", "response failed queueFullskip!  " + needCheckResponseCMD);\r
-            }else{\r
-              if (Config.LOG_TOFILE)\r
-                ICLogger.logToFile("APILog", "response failed retry !  " +CheckCount+" " + needCheckResponseCMD);\r
-            }\r
-            CheckCount++;\r
-          }else{ //否则 可能是还没有发送过数据,或者超过重试次数,继续提取queue中数据进行发送\r
-            ICLogger.i("checkSrvResponse CheckCount="+CheckCount+" Timeout or cmd is null, skip ");\r
-            if (Config.LOG_TOFILE)\r
-              ICLogger.logToFile("APILog", "response timeout skip!  " + needCheckResponseCMD);\r
-            CheckCount=0;\r
-          }\r
-        }\r
+                //检查刚刚发送出去的包是否需要检查server response\r
+                checkNeedServerResponse(needCheckResponseCMD);\r
+\r
+                //如果需要,且没有服务器反馈\r
+                if (NeedCheckServerResponse == true && ServerResponsed == false) {\r
+                    //刚刚发送的包不为空,且检测次数小于3,则保留数据,进行下一次重试。\r
+                    if (needCheckResponseCMD != null && CheckCount < 3) {\r
+                        //如果cmd有效,且尝试次数小于3, 没有收到反馈的情况下,可以重新插入queue进行下一次尝试!\r
+                        ICLogger.i("checkSrvResponse " + CheckCount + " times for " + needCheckResponseCMD);\r
+                        if (!ServiceUtil.offerQueue(new StringMessage(needCheckResponseCMD), true)) {\r
+                            ICLogger.i("checkSrvResponse failed ,重新添加MessageQueue 已满,数据将被丢弃!" + needCheckResponseCMD);\r
+                            if (Config.LOG_TOFILE)\r
+                                ICLogger.logToFile("APILog", "response failed queueFullskip!  " + needCheckResponseCMD);\r
+                        } else {\r
+                            if (Config.LOG_TOFILE)\r
+                                ICLogger.logToFile("APILog", "response failed retry !  " + CheckCount + " " + needCheckResponseCMD);\r
+                        }\r
+                        CheckCount++;\r
+                    } else { //否则 可能是还没有发送过数据,或者超过重试次数,继续提取queue中数据进行发送\r
+                        ICLogger.i("checkSrvResponse CheckCount=" + CheckCount + " Timeout or cmd is null, skip ");\r
+                        if (Config.LOG_TOFILE)\r
+                            ICLogger.logToFile("APILog", "response timeout skip!  " + needCheckResponseCMD);\r
+                        CheckCount = 0;\r
+                    }\r
+                }\r
 \r
-        if (!queue.isEmpty()) {\r
-          StringBuilder stringBuilder = new StringBuilder();\r
-          if (checkNetwork()) {\r
-            StringMessage stringMessage = queue.poll();\r
-            if (stringMessage != null) {\r
-              String cmd = stringMessage.isFromCache();\r
-              stringBuilder.append(cmd);\r
-              stringBuilder.append("\n");\r
-              if (checkNetwork()) {\r
-                connection.sendMsg(cmd);\r
+                if (!queue.isEmpty()) {\r
+                    StringBuilder stringBuilder = new StringBuilder();\r
+                    if (checkNetwork()) {\r
+                        StringMessage stringMessage = queue.poll();\r
+                        if (stringMessage != null) {\r
+                            String cmd = stringMessage.isFromCache();\r
+                            stringBuilder.append(cmd);\r
+                            stringBuilder.append("\n");\r
+                            if (checkNetwork()) {\r
+                                connection.sendMsg(cmd);\r
 //                stringMessage = queue.poll();\r
-                needCheckResponseCMD=cmd;\r
-                //如果需要Check\r
-                if (NeedCheckServerResponse==true){\r
-                    ICLogger.i("checkSrvResponse "+cmd);\r
-                    ServerResponsed=false;\r
-                }\r
-                ret=true;\r
-              } else {\r
-                //已经拿到的缓存,如果刚巧没有网络,就原路放回去\r
-                ICLogger.i("网络不通,不能发送!");\r
-                if (!ServiceUtil.offerQueue(stringMessage,true)){\r
-                  ICLogger.i("MessageQueue 已满,数据将被丢弃!"+ stringMessage);\r
-                  if (Config.LOG_TOFILE) ICLogger.logToFile( "APILog", " queueFullskip!  " + stringMessage);\r
+                                needCheckResponseCMD = cmd;\r
+                                //如果需要Check\r
+                                if (NeedCheckServerResponse == true) {\r
+                                    ICLogger.i("checkSrvResponse " + cmd);\r
+                                    ServerResponsed = false;\r
+                                }\r
+                                ret = true;\r
+                            } else {\r
+                                //已经拿到的缓存,如果刚巧没有网络,就原路放回去\r
+                                ICLogger.i("网络不通,不能发送!");\r
+                                if (!ServiceUtil.offerQueue(stringMessage, true)) {\r
+                                    ICLogger.i("MessageQueue 已满,数据将被丢弃!" + stringMessage);\r
+                                    if (Config.LOG_TOFILE)\r
+                                        ICLogger.logToFile("APILog", " queueFullskip!  " + stringMessage);\r
+                                }\r
+                                ret = false;\r
+                            }\r
+                        } else {\r
+                            stringBuilder.append("no message!\n");\r
+                        }\r
+                    }\r
+                    str = stringBuilder.toString();\r
+                } else {\r
+                    str = "no message!\n";\r
                 }\r
-                ret=false;\r
-              }\r
-            }else{\r
-             stringBuilder.append("no message!\n");\r
+                ICLogger.i("send cached cmd : \n" + str);\r
+                ICLogger.i("\n" + queue.size() + " left in Queue!");\r
+            } finally {\r
+                if (mLock != null && mLock.isLocked())\r
+                    mLock.unlock();\r
+            }\r
+        }\r
+        return ret;\r
+    }\r
+\r
+    public static void sendLocationMSG(String Msg) {\r
+\r
+        if (Msg == null || Msg.trim().isEmpty()) {\r
+            ICLogger.i("命令为空,跳过发送!");\r
+            return;\r
+        }\r
+        if (mRuntime.getUseQueue()) {\r
+            if (!ServiceUtil.offerQueue(protocolAPIHelper.genStringMessage("queue", Msg))) {\r
+                ICLogger.i(" MessageQueue 已满,数据将被丢弃," + Msg);\r
+                if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " queueFullskip  " + Msg);\r
             }\r
-          }\r
-          str = stringBuilder.toString();\r
+//      if(queue.size()>5) //测试queue 发送逻辑用\r
+            triggerSendThread();\r
         } else {\r
-          str = "no message!\n";\r
+            if (checkNetwork()) {\r
+                ICLogger.i(" first send " + Msg);\r
+                connection.send(protocolAPIHelper.genStringMessage("queue", Msg));\r
+            } else {\r
+                ICLogger.i("offline skip  " + Msg);\r
+                if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " offlineskip  " + Msg);\r
+            }\r
         }\r
-        ICLogger.i("send cached cmd : \n"+str);\r
-        ICLogger.i("\n"+queue.size()+" left in Queue!");\r
-      }finally {\r
-        if(mLock!=null && mLock.isLocked())\r
-          mLock.unlock();\r
-      }\r
     }\r
-    return ret;\r
-  }\r
 \r
-public static void sendLocationMSG( String Msg){\r
+    public static PowerManager.WakeLock WakeLockForGetWifiList(Runtime paramRuntime) {\r
+        PowerManager.WakeLock wakeLock = ((PowerManager) (paramRuntime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Deliver.class.getSimpleName());\r
+        wakeLock.acquire(120000L);\r
+        return wakeLock;\r
+    }\r
 \r
-    if(Msg==null ||Msg.trim().isEmpty()){\r
-      ICLogger.i("命令为空,跳过发送!");\r
-      return ;\r
+    public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {\r
     }\r
-    if(mRuntime.getUseQueue()){\r
-      if(!ServiceUtil.offerQueue(protocolAPIHelper.genStringMessage("queue",Msg))) {\r
-        ICLogger.i(" MessageQueue 已满,数据将被丢弃," + Msg);\r
-        if (Config.LOG_TOFILE)ICLogger.logToFile( "APILog", " queueFullskip  " + Msg);\r
-      }\r
-//      if(queue.size()>5) //测试queue 发送逻辑用\r
-        triggerSendThread();\r
-    }else {\r
-      if (checkNetwork()) {\r
-        ICLogger.i(" first send " + Msg);\r
-        connection.send(protocolAPIHelper.genStringMessage("queue",Msg));\r
-      } else {\r
-        ICLogger.i("offline skip  " + Msg);\r
-        if (Config.LOG_TOFILE) ICLogger.logToFile( "APILog", " offlineskip  " + Msg);\r
-      }\r
+\r
+    public void onAttach(Connection paramConnection, Runtime paramRuntime) {\r
     }\r
-}\r
-  private static int getMinSignalStrength(int paramInt) {\r
-    int b = -105;\r
-    switch (paramInt) {\r
-      case SimSignalUtil.IS_4G:\r
-        b = -100;\r
-        break;\r
-      case SimSignalUtil.IS_2G:\r
-      case SimSignalUtil.IS_3G:\r
-      default:\r
-        break;\r
+\r
+    @Override\r
+    public boolean onConnectionClose(Connection paramConnection, Runtime paramRuntime, String ErrorMsg) {\r
+        return false;\r
     }\r
-    return b;\r
-  }\r
-\r
-  public static PowerManager.WakeLock WakeLockForGetWifiList(Runtime paramRuntime) {\r
-    PowerManager.WakeLock wakeLock = ((PowerManager)(paramRuntime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Deliver.class.getSimpleName());\r
-    wakeLock.acquire(120000L);\r
-    return wakeLock;\r
-  }\r
-  \r
-  private boolean isSilence(Runtime paramRuntime) {\r
-    return SharPreferenceUtil.getPrefBoolean((paramRuntime.getContextProxy()).context, "KEY_ISSILENCE", false);\r
-  }\r
-  \r
-  public static void releaseWakeLockForGetWifiList() {\r
-    if (WifiListWakeLock == null) {\r
-      ICLogger.i("WifiListWakeLock 没有加锁");\r
-      return;\r
-    } \r
-    if (WifiListWakeLock.isHeld()) {\r
-      WifiListWakeLock.release();\r
-      WifiListWakeLock = null;\r
-    } \r
-  }\r
-  \r
-  public PowerManager.WakeLock getWakeLock() {\r
-    PowerManager.WakeLock wakeLock = ((PowerManager)(this.mRuntime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Deliver.class.getSimpleName());\r
-    wakeLock.acquire(40000L);\r
-    return wakeLock;\r
-  }\r
-  \r
-  public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {}\r
-  \r
-  public void onAttach(Connection paramConnection, Runtime paramRuntime) {}\r
-\r
-  @Override\r
-  public boolean onConnectionClose(Connection paramConnection, Runtime paramRuntime, String ErrorMsg) {\r
-   return false; }\r
-  \r
-  public boolean onConnectionOpen(Connection paramConnection, Runtime paramRuntime) { return false; }\r
-  \r
-  public void onDetach(Connection paramConnection, Runtime paramRuntime) {}\r
-  \r
-  public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, final Runtime paramRuntime) {\r
-    this.mConnection = paramConnection;\r
-    this.mRuntime = paramRuntime;\r
-    String cmd = paramStringMessage.cmd();\r
-\r
-    //如果需要检测是否响应。\r
-    if (NeedCheckServerResponse==true){\r
-\r
-      if(needCheckResponseCMD!=null) {\r
-        if( cmd.equals(protocolAPIHelper.isCmdStr (needCheckResponseCMD))){\r
-          ICLogger.i("checkSrvResponse "+cmd+" "+protocolAPIHelper.isCmdStr (needCheckResponseCMD)+" is responsed!");\r
-          ServerResponsed=true;\r
-          CheckCount=0;\r
-        }\r
-      }\r
+\r
+    public boolean onConnectionOpen(Connection paramConnection, Runtime paramRuntime) {\r
+        return false;\r
     }\r
-    ICLogger.i("Deliver receive cmd " + paramStringMessage.cmd());\r
-    if (cmd.equals("SentVoicePacket") ) {\r
-      //收到BP07 表示服务器收到一个voicePacket 分包成功,开始检查下一个包是否存在需要发送。\r
-      //收到SentVoicePacket 表示 有一个VoiceMessage要发送,需要从第0个包开始发送语音分包。\r
-      voicePacket voicepacket = voicePacket.getInstanceSent();\r
-      if (voicepacket.getCurrentIndexToSent() < voicepacket.getPacketCount()) {\r
-        ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() + voicepacket.getPacketTime() + " send " + (voicepacket.getCurrentIndexToSent() + 1) + "/" + voicepacket.getPacketCount());\r
-        ((NettyConnection) mConnection).sendMsg(\r
-                protocolAPIHelper.getVoicePacketItem(voicepacket.getPacketTime(),\r
-                        voicepacket.getPacketCount(),\r
-                        (voicepacket.getCurrentIndexToSent() + 1),\r
-                        voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketLen(),\r
-                        voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketData(), voicepacket.getFiletype(), voicepacket.getDateType())\r
-        );\r
-      } else {\r
-        ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() + " " + voicepacket.getPacketTime() + " sent Done!");\r
-      }\r
-      return true;\r
-    } else if ("PhotoRemoteTaken".equals(paramStringMessage.cmd())) {\r
-      //接收到拍照完毕命令,发送照片\r
-\r
-      String msgUrl=paramStringMessage.isFromCache();\r
-     ICLogger.i("receive taken photo to send "+msgUrl);\r
-    //创建voiceConent并添加到数据\r
-    final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", 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
-    return true;\r
-  } else if ("poweroffCheckSim".equals(paramStringMessage.cmd())) {\r
-      paramRuntime.setShutdown(true);\r
-\r
-          if (SimSignalUtil.hasSimCard(paramRuntime.getContextProxy().context))\r
-          {\r
-            ICLogger.i("Has Sim Card Skip poweroff!");\r
-            Util.ShowToast(paramRuntime,"Has Sim Card Skip poweroff!");\r
-            return true;\r
-          }else{\r
-            Util.ShowToast(paramRuntime,"Do poweroff!");\r
-         }\r
 \r
-      Observable.timer(1000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
-        public void call(Long param1Long) {\r
-          Util.shutdown();\r
-        }\r
-      });\r
-      return true;\r
-    } else if ("FactoryResetCheckSim".equals(paramStringMessage.cmd())) {\r
-\r
-        if (SimSignalUtil.hasSimCard(paramRuntime.getContextProxy().context))\r
-        {\r
-          ICLogger.i("Has Sim Card Skip FactoryReset!");\r
-          Util.ShowToast(paramRuntime,"Has Sim Card Skip FactoryReset!");\r
-\r
-          return true;\r
-        }else{\r
-          Util.ShowToast(paramRuntime,"Do FactoryReset!");\r
-        }\r
+    public void onDetach(Connection paramConnection, Runtime paramRuntime) {\r
+    }\r
 \r
-      Observable.timer(1000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
-        public void call(Long param1Long) {\r
-          Util.doMasterClear(paramRuntime.getContextProxy().context);\r
-        }\r
-      });\r
-      return true;\r
-    } else if ("poweroff".equals(paramStringMessage.cmd())) {\r
-      paramRuntime.setShutdown(true);\r
-      Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
-        public void call(Long param1Long) {\r
-          Util.shutdown();\r
-        }\r
-      });\r
-      return true;\r
-    } else if ("FactoryReset".equals(paramStringMessage.cmd())) {\r
-      Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
-        public void call(Long param1Long) {\r
-          Util.doMasterClear(paramRuntime.getContextProxy().context);\r
-        }\r
-      });\r
-      return true;\r
-    } else if ("Reboot".equals(paramStringMessage.cmd())) {\r
+    public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, final Runtime paramRuntime) {\r
+        this.mConnection = paramConnection;\r
+        this.mRuntime = paramRuntime;\r
+        String cmd = paramStringMessage.cmd();\r
+\r
+        //如果需要检测是否响应。\r
+        if (NeedCheckServerResponse == true) {\r
 \r
-      Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
-        public void call(Long param1Long) {\r
-          Util.reboot(paramRuntime.getContextProxy().context);\r
+            if (needCheckResponseCMD != null) {\r
+                if (cmd.equals(protocolAPIHelper.isCmdStr(needCheckResponseCMD))) {\r
+                    ICLogger.i("checkSrvResponse " + cmd + " " + protocolAPIHelper.isCmdStr(needCheckResponseCMD) + " is responsed!");\r
+                    ServerResponsed = true;\r
+                    CheckCount = 0;\r
+                }\r
+            }\r
         }\r
-      });\r
-      return true;\r
-    } else if ("heartbeat".equals(paramStringMessage.cmd())) {\r
-      //每次心跳,查询一下 是否有语音消息需要接收。\r
-//      paramConnection.send(protocolAPIHelper.genStringMessage("AP05",protocolAPIHelper.AP05(true)));\r
-    } else if ("NewVoice".equals(paramStringMessage.cmd()))\r
-    {\r
-      Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
-        public void call(Long param1Long) {\r
-          final Context context = (Deliver.this.mRuntime.getContextProxy()).context;\r
-\r
-          Contact param2Contact = new Contact(CATEGORY_GROUP, (mRuntime.getContextProxy()).context.getResources().getString(R.string.all_group), Contact.GROUP_ALL);\r
-          int i = mRuntime.getContextProxy().getTelephonyManager().getCallState();\r
-          if (!mRuntime.getBatteryLow() && 1 != i && 2 != i) {\r
-            if (Config.do_broadCast_message_no_indication)\r
-            {\r
-\r
-              ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED+" "+paramStringMessage.isFromCache());\r
-                //广播 voice消息\r
-                Intent intent = new Intent();\r
-                intent.setAction(Constants.ACTION_MESSAGE_RECEIVED);\r
-                intent.putExtra(Constants.KEY_MESSAGE_TYPE,"voice");\r
-                intent.putExtra(Constants.KEY_MESSAGE_FROM,"广播消息");\r
-                intent.putExtra(Constants.KEY_MESSAGE_URL,paramStringMessage.isFromCache());\r
-\r
-             //   playVoice(context,paramStringMessage.isFromCache());\r
-                context.sendBroadcast(intent);\r
+        ICLogger.i("Deliver receive cmd " + paramStringMessage.cmd());\r
+        if (cmd.equals("SentVoicePacket")) {\r
+            //收到BP07 表示服务器收到一个voicePacket 分包成功,开始检查下一个包是否存在需要发送。\r
+            //收到SentVoicePacket 表示 有一个VoiceMessage要发送,需要从第0个包开始发送语音分包。\r
+            voicePacket voicepacket = voicePacket.getInstanceSent();\r
+            if (voicepacket.getCurrentIndexToSent() < voicepacket.getPacketCount()) {\r
+                ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() + voicepacket.getPacketTime() + " send " + (voicepacket.getCurrentIndexToSent() + 1) + "/" + voicepacket.getPacketCount());\r
+                ((NettyConnection) mConnection).sendMsg(\r
+                        protocolAPIHelper.getVoicePacketItem(voicepacket.getPacketTime(),\r
+                                voicepacket.getPacketCount(),\r
+                                (voicepacket.getCurrentIndexToSent() + 1),\r
+                                voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketLen(),\r
+                                voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketData(), voicepacket.getFiletype(), voicepacket.getDateType())\r
+                );\r
+            } else {\r
+                ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() + " " + voicepacket.getPacketTime() + " sent Done!");\r
+            }\r
+            return true;\r
+        } else if ("PhotoRemoteTaken".equals(paramStringMessage.cmd())) {\r
+            //接收到拍照完毕命令,发送照片\r
+\r
+            String msgUrl = paramStringMessage.isFromCache();\r
+            ICLogger.i("receive taken photo to send " + msgUrl);\r
+            //创建voiceConent并添加到数据\r
+            final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", 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
+            return true;\r
+        } else if ("poweroffCheckSim".equals(paramStringMessage.cmd())) {\r
+            paramRuntime.setShutdown(true);\r
+\r
+            if (SimSignalUtil.hasSimCard(paramRuntime.getContextProxy().context)) {\r
+                ICLogger.i("Has Sim Card Skip poweroff!");\r
+                Util.ShowToast(paramRuntime, "Has Sim Card Skip poweroff!");\r
+                return true;\r
+            } else {\r
+                Util.ShowToast(paramRuntime, "Do poweroff!");\r
             }\r
 \r
-            if (Config.noVoiceNotifyDialog==false) {\r
+            Observable.timer(1000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+                public void call(Long param1Long) {\r
+                    Util.shutdown();\r
+                }\r
+            });\r
+            return true;\r
+        } else if ("FactoryResetCheckSim".equals(paramStringMessage.cmd())) {\r
+\r
+            if (SimSignalUtil.hasSimCard(paramRuntime.getContextProxy().context)) {\r
+                ICLogger.i("Has Sim Card Skip FactoryReset!");\r
+                Util.ShowToast(paramRuntime, "Has Sim Card Skip FactoryReset!");\r
 \r
-                Intent intent = new Intent();\r
-                //显示提示窗口\r
-                intent.setAction(DIALOG_ACTION);\r
-                intent.putExtra("contact", (Parcelable) param2Contact);\r
-                context.sendBroadcast(intent);\r
+                return true;\r
+            } else {\r
+                Util.ShowToast(paramRuntime, "Do FactoryReset!");\r
             }\r
 \r
-          }\r
-        }\r
-      });\r
-    return true;\r
-  }else if ("findDev".equals(paramStringMessage.cmd())) {\r
-      Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
-        public void call(Long param1Long) {\r
-          final Context context = (Deliver.this.mRuntime.getContextProxy()).context;\r
-\r
-              Intent intent = new Intent();\r
-              ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED+" "+paramStringMessage.isFromCache());\r
-              //显示提示窗口\r
-              intent.setAction(DIALOG_ACTION);\r
-              intent.putExtra("findDev", "Find Device");\r
-              context.sendBroadcast(intent);\r
+            Observable.timer(1000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+                public void call(Long param1Long) {\r
+                    Util.doMasterClear(paramRuntime.getContextProxy().context);\r
+                }\r
+            });\r
+            return true;\r
+        } else if ("poweroff".equals(paramStringMessage.cmd())) {\r
+            paramRuntime.setShutdown(true);\r
+            Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+                public void call(Long param1Long) {\r
+                    Util.shutdown();\r
+                }\r
+            });\r
+            return true;\r
+        } else if ("FactoryReset".equals(paramStringMessage.cmd())) {\r
+            Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+                public void call(Long param1Long) {\r
+                    Util.doMasterClear(paramRuntime.getContextProxy().context);\r
+                }\r
+            });\r
+            return true;\r
+        } else if ("Reboot".equals(paramStringMessage.cmd())) {\r
+\r
+            Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+                public void call(Long param1Long) {\r
+                    Util.reboot(paramRuntime.getContextProxy().context);\r
+                }\r
+            });\r
+            return true;\r
+        } else if ("heartbeat".equals(paramStringMessage.cmd())) {\r
+            //每次心跳,查询一下 是否有语音消息需要接收。\r
+//      paramConnection.send(protocolAPIHelper.genStringMessage("AP05",protocolAPIHelper.AP05(true)));\r
+        } else if ("NewVoice".equals(paramStringMessage.cmd())) {\r
+            ICLogger.log(TAG, "NewVoice handler....");\r
+            Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe((Action1<Long>) param1Long -> {\r
+                final Context context = (mRuntime.getContextProxy()).context;\r
+                Contact param2Contact = new Contact(CATEGORY_GROUP, (mRuntime.getContextProxy()).context.getResources().getString(R.string.all_group), Contact.GROUP_ALL);\r
+                int i = mRuntime.getContextProxy().getTelephonyManager().getCallState();\r
+                if (!mRuntime.getBatteryLow() && 1 != i && 2 != i) {\r
+                    if (Config.do_broadCast_message_no_indication) {\r
+                        ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED + " " + paramStringMessage.isFromCache());\r
+                        //广播 voice消息\r
+                        Intent intent = new Intent();\r
+                        intent.setAction(Constants.ACTION_MESSAGE_RECEIVED);\r
+                        intent.putExtra(Constants.KEY_MESSAGE_TYPE, "voice");\r
+                        intent.putExtra(Constants.KEY_MESSAGE_FROM, "广播消息");\r
+                        intent.putExtra(Constants.KEY_MESSAGE_URL, paramStringMessage.isFromCache());\r
+                        //   playVoice(context,paramStringMessage.isFromCache());\r
+                        context.sendBroadcast(intent);\r
+                    }\r
+\r
+                    if (!Config.noVoiceNotifyDialog) {\r
+                        Intent intent = new Intent();\r
+                        //显示提示窗口\r
+                        intent.setAction(DIALOG_ACTION);\r
+                        intent.putExtra("contact", (Parcelable) param2Contact);\r
+                        context.sendBroadcast(intent);\r
+                    }\r
+\r
+                }\r
+            });\r
+            return true;\r
+        } else if ("findDev".equals(paramStringMessage.cmd())) {\r
+            Observable.timer(500L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {\r
+                public void call(Long param1Long) {\r
+                    final Context context = (Deliver.this.mRuntime.getContextProxy()).context;\r
+\r
+                    Intent intent = new Intent();\r
+                    ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED + " " + paramStringMessage.isFromCache());\r
+                    //显示提示窗口\r
+                    intent.setAction(DIALOG_ACTION);\r
+                    intent.putExtra("findDev", "Find Device");\r
+                    context.sendBroadcast(intent);\r
+                }\r
+            });\r
+            return true;\r
+        } else if ("StartMonitor".equals(paramStringMessage.cmd())) {\r
+\r
+            String recordfilepath = Util.getRecordfilePath(mRuntime, TimeUtil.getSystemTime3());\r
+            int recordtime = Integer.parseInt(paramStringMessage.isFromCache().trim());\r
+            new Handler().post(new Runnable() {\r
+                @Override\r
+                public void run() {\r
+                    AudioService.getInstance().startRecord(recordfilepath);\r
+                }\r
+            });\r
+            new Handler().postDelayed(new Runnable() {\r
+                @Override\r
+                public void run() {\r
+                    AudioService.getInstance().stopRecord();\r
+                    ICLogger.i("Monitor Record to send " + recordfilepath);\r
+                    //创建voiceConent并添加到数据\r
+                    final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", recordfilepath, 1, 1);\r
+\r
+                    // 把voiceContent拆解成1024的分包\r
+                    Util.parseToVoicePacketSent(voiceContent);\r
+                    //trigger 分包发送\r
+                    if (CoreService.getInstance().getConnection() != null)\r
+                        CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
+                }\r
+            }, recordtime * 1000);\r
+            return true;\r
         }\r
-      });\r
-      return true;\r
-  }else if ("StartMonitor".equals(paramStringMessage.cmd())) {\r
 \r
-      String recordfilepath=Util.getRecordfilePath(mRuntime, TimeUtil.getSystemTime3());\r
-      int recordtime=Integer.parseInt(paramStringMessage.isFromCache().trim());\r
-      new Handler().post(new Runnable() {\r
-        @Override\r
-        public void run() {\r
-          AudioService.getInstance().startRecord(recordfilepath);\r
+\r
+        return false;\r
+    }\r
+\r
+    public static void releaseOneWakeLock() {\r
+        if (ReceiveWakeLock == null) {\r
+            ICLogger.i("ReceiveWakeLock 没有加锁");\r
+            return;\r
         }\r
-      });\r
-      new Handler().postDelayed(new Runnable() {\r
-        @Override\r
-        public void run() {\r
-          AudioService.getInstance().stopRecord();\r
-          ICLogger.i("Monitor Record to send "+recordfilepath);\r
-          //创建voiceConent并添加到数据\r
-          final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", recordfilepath,1,1);\r
-\r
-          // 把voiceContent拆解成1024的分包\r
-          Util.parseToVoicePacketSent(voiceContent);\r
-          //trigger 分包发送\r
-          if (CoreService.getInstance().getConnection()!=null)\r
-            CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");\r
+        if (!wakeLockWifiList && !wakeLockWifiSet && ReceiveWakeLock.isHeld()) {\r
+            ReceiveWakeLock.release();\r
+            ReceiveWakeLock = null;\r
         }\r
-      },recordtime*1000);\r
-      return true;\r
     }\r
 \r
+    public static void connectToWifi(String ssid, String pwd, String encryptType) {\r
+        int networkid;\r
+        final WifiManager wifiManager = mRuntime.getContextProxy().getWifiManager();\r
+        wifiEnabled = wifiManager.isWifiEnabled();\r
+        if (!wifiEnabled) {\r
+            //没开就打开wifi\r
+            Util.turnOnWifiForConnect(mRuntime.getContextProxy().context, mRuntime);\r
+        }\r
+        if (Util.isConnectWifi(mRuntime.getContextProxy().context)) {\r
+            networkid = wifiManager.getConnectionInfo().getNetworkId();\r
+            wifiManager.disconnect();\r
+            wifiManager.removeNetwork(networkid);\r
+            wifiManager.saveConfiguration();\r
+        }\r
 \r
+        Deliver.isAppSetWifi = 1;\r
+        WifiConfiguration wifiConfiguration = Util.GetconfigWifiInfo(mRuntime.getContextProxy().context, ssid, pwd, encryptType);\r
+        networkid = wifiConfiguration.networkId;\r
+        wifiManager.removeNetwork(networkid);\r
+        wifiManager.saveConfiguration();\r
+        networkid = wifiManager.addNetwork(wifiConfiguration);\r
+        if (Util.connectWifiByReflectMethod(mRuntime.getContextProxy().context, networkid) == null && !wifiManager.enableNetwork(networkid, true)) {\r
+            ICLogger.i("连接失败 3");\r
+            SystemClock.sleep(3000L);\r
+\r
+            wifiManager.setWifiEnabled(false);\r
+            wakeLockWifiSet = false;\r
+            releaseOneWakeLock();\r
+            WifiListWakeLock = Deliver.WakeLockForGetWifiList(mRuntime);\r
+\r
+            return;\r
+        }\r
 \r
-    return false;\r
-  }\r
-\r
-\r
-  private void playVoice(Context paramContext,String voicefile) {\r
-    AudioService.getInstance().play(voicefile);\r
-  }\r
-\r
-  public static void releaseOneWakeLock() {\r
-    if (ReceiveWakeLock == null) {\r
-      ICLogger.i("ReceiveWakeLock 没有加锁");\r
-      return;\r
-    } \r
-    if (!wakeLockWifiList && !wakeLockWifiSet && ReceiveWakeLock.isHeld()) {\r
-      ReceiveWakeLock.release();\r
-      ReceiveWakeLock = null;\r
-    } \r
-  }\r
-  \r
-  public void releaseReceiveWakeLock() {\r
-    if (this.ReceiveWakeLock == null) {\r
-      ICLogger.i("ReceiveWakeLock 没有加锁");\r
-      return;\r
-    } \r
-    if (this.ReceiveWakeLock.isHeld()) {\r
-      this.ReceiveWakeLock.release();\r
-      this.wakeLockWifiList = false;\r
-      this.wakeLockWifiSet = false;\r
-      this.ReceiveWakeLock = null;\r
-    } \r
-  }\r
-  public static void connectToWifi(String ssid,String pwd,String encryptType){\r
-    int networkid;\r
-    final WifiManager wifiManager = mRuntime.getContextProxy().getWifiManager();\r
-    wifiEnabled = wifiManager.isWifiEnabled();\r
-    if (!wifiEnabled)\r
-    {\r
-      //没开就打开wifi\r
-      Util.turnOnWifiForConnect(mRuntime.getContextProxy().context, mRuntime);\r
-    }\r
-    if (Util.isConnectWifi(mRuntime.getContextProxy().context)) {\r
-      networkid = wifiManager.getConnectionInfo().getNetworkId();\r
-      wifiManager.disconnect();\r
-      wifiManager.removeNetwork(networkid);\r
-      wifiManager.saveConfiguration();\r
-    }\r
-\r
-    Deliver.isAppSetWifi = 1;\r
-    WifiConfiguration wifiConfiguration = Util.GetconfigWifiInfo(mRuntime.getContextProxy().context, ssid, pwd, encryptType);\r
-    networkid = wifiConfiguration.networkId;\r
-    wifiManager.removeNetwork(networkid);\r
-    wifiManager.saveConfiguration();\r
-    networkid = wifiManager.addNetwork(wifiConfiguration);\r
-    if (Util.connectWifiByReflectMethod(mRuntime.getContextProxy().context, networkid) == null && !wifiManager.enableNetwork(networkid, true)) {\r
-      ICLogger.i("连接失败 3");\r
-      SystemClock.sleep(3000L);\r
-\r
-      wifiManager.setWifiEnabled(false);\r
-       wakeLockWifiSet = false;\r
-      releaseOneWakeLock();\r
-      WifiListWakeLock = Deliver.WakeLockForGetWifiList(mRuntime);\r
-\r
-      return;\r
-    }\r
+        if (!wifiEnabled) {\r
+            //原来wifi没开就关闭wifi\r
+            Util.turnOffWifiForSleep(mRuntime.getContextProxy().context, mRuntime);\r
+        }\r
 \r
-    if(!wifiEnabled ){\r
-      //原来wifi没开就关闭wifi\r
-      Util.turnOffWifiForSleep(mRuntime.getContextProxy().context, mRuntime);\r
     }\r
 \r
-  }\r
-  public void setWakeupAlarm(Runtime paramRuntime) {\r
-    AlarmManager alarmManager = (AlarmManager)(paramRuntime.getContextProxy()).context.getSystemService(Context.ALARM_SERVICE);\r
-    Intent intent = new Intent((paramRuntime.getContextProxy()).context, CoreService.class);\r
-    intent.setAction(ACTION_WAKEUP_ALARM);\r
-    PendingIntent pendingIntent = PendingIntent.getService((paramRuntime.getContextProxy()).context, 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(",m=,");\r
-    stringBuilder.append(23);\r
-    stringBuilder.append(",kitkat=");\r
-    stringBuilder.append(19);\r
-    ICLogger.i(stringBuilder.toString());\r
-    if (Build.VERSION.SDK_INT >= 19) {\r
-      alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + 10000L, pendingIntent);\r
-      return;\r
-    } \r
-    alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + 10000L, pendingIntent);\r
-  }\r
-\r
-  class ConWifiReceiver extends BroadcastReceiver {\r
-    ConWifiReceiver() {\r
+    public void setWakeupAlarm(Runtime paramRuntime) {\r
+        AlarmManager alarmManager = (AlarmManager) (paramRuntime.getContextProxy()).context.getSystemService(Context.ALARM_SERVICE);\r
+        Intent intent = new Intent((paramRuntime.getContextProxy()).context, CoreService.class);\r
+        intent.setAction(ACTION_WAKEUP_ALARM);\r
+        PendingIntent pendingIntent = PendingIntent.getService((paramRuntime.getContextProxy()).context, 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(",m=,");\r
+        stringBuilder.append(23);\r
+        stringBuilder.append(",kitkat=");\r
+        stringBuilder.append(19);\r
+        ICLogger.i(stringBuilder.toString());\r
+        if (Build.VERSION.SDK_INT >= 19) {\r
+            alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + 10000L, pendingIntent);\r
+            return;\r
+        }\r
+        alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + 10000L, pendingIntent);\r
     }\r
 \r
-    public void onReceive(final Context var1, Intent var2) {\r
-      String var3 = var2.getAction();\r
-      StringBuilder var4 = new StringBuilder();\r
-      var4.append(" receive action=");\r
-      var4.append(var3);\r
-      var4.append(" isAppSetWifi=");\r
-      var4.append(Deliver.isAppSetWifi);\r
-      ICLogger.i(var4.toString());\r
-      if (var3.equals("android.net.conn.CONNECTIVITY_CHANGE")) {\r
-        if (Deliver.isAppSetWifi == 0) {\r
-          return;\r
+    class ConWifiReceiver extends BroadcastReceiver {\r
+        ConWifiReceiver() {\r
         }\r
 \r
-        if (Deliver.isAppSetWifi == 1) {\r
-          Deliver.isAppSetWifi = 0;\r
-          if (Deliver.this.delayHandler != null) {\r
-            Deliver.this.delayHandler.removeCallbacks(Deliver.this.delayTh);\r
-            Deliver.this.delayHandler = null;\r
-          }\r
-        }\r
+        public void onReceive(final Context var1, Intent var2) {\r
+            String var3 = var2.getAction();\r
+            StringBuilder var4 = new StringBuilder();\r
+            var4.append(" receive action=");\r
+            var4.append(var3);\r
+            var4.append(" isAppSetWifi=");\r
+            var4.append(Deliver.isAppSetWifi);\r
+            ICLogger.i(var4.toString());\r
+            if (var3.equals("android.net.conn.CONNECTIVITY_CHANGE")) {\r
+                if (Deliver.isAppSetWifi == 0) {\r
+                    return;\r
+                }\r
 \r
-        WifiManager var5 = (WifiManager)var1.getSystemService(Context.WIFI_SERVICE);\r
-        if (((ConnectivityManager)var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {\r
-          ICLogger.i("连接成功");\r
-          Deliver.isAppSetWifi = 0;\r
-          Deliver.haveSendH42 = true;\r
-          Deliver.this.mConnection.connect(Deliver.this.mRuntime.getHost(), Deliver.this.mRuntime.getPort());\r
-          if (Deliver.this.delayHandler != null) {\r
-            Deliver.this.delayHandler.removeCallbacks(Deliver.this.delayTh);\r
-            Deliver.this.delayHandler = null;\r
-          }\r
-\r
-          var1.unregisterReceiver(Deliver.this.mMyWifiReceiver);\r
-          Deliver.this.mMyWifiReceiver = null;\r
-          Deliver.this.wakeLockWifiSet = false;\r
-          Deliver.this.releaseOneWakeLock();\r
-          Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);\r
-        } else {\r
-          StringBuilder var6 = new StringBuilder();\r
-          var6.append("连接失败 222 delayHandler=");\r
-          var6.append(Deliver.this.delayHandler);\r
-          ICLogger.i(var6.toString());\r
-          Deliver.isAppSetWifi = 2;\r
-          var5.reconnect();\r
-          if (Deliver.this.delayHandler == null) {\r
-            Deliver.this.delayHandler = new Handler();\r
-            Deliver.this.delayTh = new Runnable() {\r
-              public void run() {\r
-                StringBuilder var1x = new StringBuilder();\r
-                var1x.append("连接失败 超时 wifiEnabled=");\r
-                var1x.append(Deliver.this.wifiEnabled);\r
-                ICLogger.i(var1x.toString());\r
-                if (Deliver.isAppSetWifi != 1) {\r
-                  Deliver.isAppSetWifi = 0;\r
-                  var1.unregisterReceiver(Deliver.this.mMyWifiReceiver);\r
-                  Deliver.this.mMyWifiReceiver = null;\r
-                  WifiManager var3 = (WifiManager)var1.getSystemService(Context.WIFI_SERVICE);\r
-                  if (((ConnectivityManager)var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {\r
-                    ICLogger.i("连接成功 1");\r
+                if (Deliver.isAppSetWifi == 1) {\r
+                    Deliver.isAppSetWifi = 0;\r
+                    if (Deliver.this.delayHandler != null) {\r
+                        Deliver.this.delayHandler.removeCallbacks(Deliver.this.delayTh);\r
+                        Deliver.this.delayHandler = null;\r
+                    }\r
+                }\r
+\r
+                WifiManager var5 = (WifiManager) var1.getSystemService(Context.WIFI_SERVICE);\r
+                if (((ConnectivityManager) var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {\r
+                    ICLogger.i("连接成功");\r
+                    Deliver.isAppSetWifi = 0;\r
                     Deliver.haveSendH42 = true;\r
                     Deliver.this.mConnection.connect(Deliver.this.mRuntime.getHost(), Deliver.this.mRuntime.getPort());\r
+                    if (Deliver.this.delayHandler != null) {\r
+                        Deliver.this.delayHandler.removeCallbacks(Deliver.this.delayTh);\r
+                        Deliver.this.delayHandler = null;\r
+                    }\r
+\r
+                    var1.unregisterReceiver(Deliver.this.mMyWifiReceiver);\r
+                    Deliver.this.mMyWifiReceiver = null;\r
                     Deliver.this.wakeLockWifiSet = false;\r
                     Deliver.this.releaseOneWakeLock();\r
                     Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);\r
-                  } else {\r
-                    int var2 = var3.getConnectionInfo().getNetworkId();\r
-                    if (var2 != -1) {\r
-                      var3.disableNetwork(var2);\r
+                } else {\r
+                    StringBuilder var6 = new StringBuilder();\r
+                    var6.append("连接失败 222 delayHandler=");\r
+                    var6.append(Deliver.this.delayHandler);\r
+                    ICLogger.i(var6.toString());\r
+                    Deliver.isAppSetWifi = 2;\r
+                    var5.reconnect();\r
+                    if (Deliver.this.delayHandler == null) {\r
+                        Deliver.this.delayHandler = new Handler();\r
+                        Deliver.this.delayTh = new Runnable() {\r
+                            public void run() {\r
+                                StringBuilder var1x = new StringBuilder();\r
+                                var1x.append("连接失败 超时 wifiEnabled=");\r
+                                var1x.append(Deliver.this.wifiEnabled);\r
+                                ICLogger.i(var1x.toString());\r
+                                if (Deliver.isAppSetWifi != 1) {\r
+                                    Deliver.isAppSetWifi = 0;\r
+                                    var1.unregisterReceiver(Deliver.this.mMyWifiReceiver);\r
+                                    Deliver.this.mMyWifiReceiver = null;\r
+                                    WifiManager var3 = (WifiManager) var1.getSystemService(Context.WIFI_SERVICE);\r
+                                    if (((ConnectivityManager) var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {\r
+                                        ICLogger.i("连接成功 1");\r
+                                        Deliver.haveSendH42 = true;\r
+                                        Deliver.this.mConnection.connect(Deliver.this.mRuntime.getHost(), Deliver.this.mRuntime.getPort());\r
+                                        Deliver.this.wakeLockWifiSet = false;\r
+                                        Deliver.this.releaseOneWakeLock();\r
+                                        Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);\r
+                                    } else {\r
+                                        int var2 = var3.getConnectionInfo().getNetworkId();\r
+                                        if (var2 != -1) {\r
+                                            var3.disableNetwork(var2);\r
 //                      ServiceUtil.offerQueue(API.H42(Deliver.this.mRuntime, "3"));\r
-                      Deliver.this.wakeLockWifiSet = false;\r
-                      Deliver.this.releaseOneWakeLock();\r
-                      Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);\r
-                    } else {\r
-                      ICLogger.i("连接失败 2-2");\r
+                                            Deliver.this.wakeLockWifiSet = false;\r
+                                            Deliver.this.releaseOneWakeLock();\r
+                                            Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);\r
+                                        } else {\r
+                                            ICLogger.i("连接失败 2-2");\r
 //                      ServiceUtil.offerQueue(API.H42(Deliver.this.mRuntime, "3"));\r
-                      Deliver.this.wakeLockWifiSet = false;\r
-                      Deliver.this.releaseOneWakeLock();\r
-                      Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);\r
-                    }\r
-\r
-                    if (!Deliver.this.wifiEnabled) {\r
-                      var3.setWifiEnabled(false);\r
+                                            Deliver.this.wakeLockWifiSet = false;\r
+                                            Deliver.this.releaseOneWakeLock();\r
+                                            Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);\r
+                                        }\r
+\r
+                                        if (!Deliver.this.wifiEnabled) {\r
+                                            var3.setWifiEnabled(false);\r
+                                        }\r
+                                    }\r
+\r
+                                    Deliver.this.delayHandler = null;\r
+                                }\r
+                            }\r
+                        };\r
+                        Deliver.this.delayHandler.postDelayed(Deliver.this.delayTh, 30000L);\r
                     }\r
-                  }\r
-\r
-                  Deliver.this.delayHandler = null;\r
                 }\r
-              }\r
-            };\r
-            Deliver.this.delayHandler.postDelayed(Deliver.this.delayTh, 30000L);\r
-          }\r
-        }\r
-      }\r
+            }\r
 \r
+        }\r
     }\r
-  }\r
-  \r
+\r
 \r
 }\r
 \r
index e253d68..61c6e79 100644 (file)
@@ -4,6 +4,7 @@ import android.content.ComponentName;
 import android.content.Intent;\r
 import android.net.Uri;\r
 import android.os.Environment;\r
+import android.util.Log;\r
 \r
 import com.enqualcomm.support.Config;\r
 import com.enqualcomm.support.CoreService;\r
@@ -38,8 +39,8 @@ public class protocol_jiai {
     private static final String CMDHEADER = "IW";\r
     private static final String CMDEND = "#";\r
     private static final String CMDSPLIT = ",";\r
-    public static final String defaultServerIP="watch.jiai.pro";\r
-    public static final int defaultServerPort=8090;\r
+    public static final String defaultServerIP = "watch.jiai.pro";\r
+    public static final int defaultServerPort = 8090;\r
 \r
     public enum CMD_TYPE {\r
         /*终端发起*/\r
@@ -177,12 +178,12 @@ public class protocol_jiai {
         cmdMap.put(CMD_TYPE.BP93, "BP93");\r
     }\r
 \r
-    private NettyConnection mConnection=null;\r
-    private Runtime mRuntime=null;\r
+    private NettyConnection mConnection = null;\r
+    private Runtime mRuntime = null;\r
 \r
-    public protocol_jiai(NettyConnection connect,Runtime runtime) {\r
-        mConnection=connect;\r
-        mRuntime=runtime;\r
+    public protocol_jiai(NettyConnection connect, Runtime runtime) {\r
+        mConnection = connect;\r
+        mRuntime = runtime;\r
 \r
     }\r
 \r
@@ -201,7 +202,7 @@ public class protocol_jiai {
 \r
                 return "";\r
             }\r
-        }else{\r
+        } else {\r
             return "";\r
         }\r
 \r
@@ -214,6 +215,7 @@ public class protocol_jiai {
 \r
         return "";\r
     }\r
+\r
     private void log(String msg) {\r
         ICLogger.log(TAG, msg);\r
     }\r
@@ -223,13 +225,13 @@ public class protocol_jiai {
     }\r
 \r
 \r
-\r
     /**/\r
-    public static StringMessage genStringMessage(String cmdName, String msg){\r
-        StringMessage sm=new StringMessage(new String[]{cmdName,msg});\r
+    public static StringMessage genStringMessage(String cmdName, String msg) {\r
+        StringMessage sm = new StringMessage(new String[]{cmdName, msg});\r
         sm.refresh(msg);\r
         return sm;\r
     }\r
+\r
     /*\r
     返回true 表示 cmd 全部解析成功\r
     返回false表示 cmd至少有一条解析失败,失败的数据归入buffer,下一次识别接着使用\r
@@ -240,11 +242,11 @@ public class protocol_jiai {
         boolean iscmdComplete = false;\r
         boolean ret = true;\r
         String last_inCompletecmd = "";\r
-        String cmd_msgbuf=new String(bytes);\r
-        log("bytes.size "+bytes.length);\r
+        String cmd_msgbuf = new String(bytes);\r
+        log("bytes.size " + bytes.length);\r
 //        cmdbuf.append(cmd_msgbuf);\r
         cmdbuf.append(cmd_msgbuf);\r
-        log("cmdbuf.size "+cmdbuf.length() +" "+cmdbuf.toString());\r
+        log("cmdbuf.size " + cmdbuf.length() + " " + cmdbuf.toString());\r
     /*\r
         如果不是 #结尾,就认为 接收数据不全,置位。\r
          */\r
@@ -253,7 +255,7 @@ public class protocol_jiai {
         }\r
         String[] cmdlist = cmd_msgbuf.split(CMDEND);\r
         int listlen = cmdlist.length;\r
-        log("listlen "+listlen);\r
+        log("listlen " + listlen);\r
          /*\r
         如果解析出来的cmdlist不是空,且数据不是完整cmd则保留 最后一条数据到last_inCompletecmd\r
          */\r
@@ -269,7 +271,7 @@ public class protocol_jiai {
                     if (key == CMD_TYPE.BP28) {\r
                         //如果是BP28则 后面的数据是音频,需要保留\r
                         byte[] amrBuf;\r
-                        int amrLen = getBP28Amrlen(cmdlist[i] );\r
+                        int amrLen = getBP28Amrlen(cmdlist[i]);\r
                         if (bytes.length > amrLen) {\r
                             handleCmd(key, cmdlist[i], bytes);\r
                         }\r
@@ -283,6 +285,7 @@ public class protocol_jiai {
         cmdbuf = new StringBuffer().append(last_inCompletecmd);\r
         return ret;\r
     }\r
+\r
     public int getBP28Amrlen(String cmd) {\r
 \r
         String Name;\r
@@ -292,16 +295,16 @@ public class protocol_jiai {
         int packetLen;\r
 \r
 \r
-        String[] msg=cmd.split(CMDSPLIT);\r
-        if (msg.length>=6){\r
+        String[] msg = cmd.split(CMDSPLIT);\r
+        if (msg.length >= 6) {\r
 \r
-            Name=msg[1];\r
-            appendIndex=msg[2];\r
-            packetCount= Integer.parseInt(msg[3]);\r
-            currentId= Integer.parseInt(msg[4]);\r
-            packetLen= Integer.parseInt(msg[5]);\r
+            Name = msg[1];\r
+            appendIndex = msg[2];\r
+            packetCount = Integer.parseInt(msg[3]);\r
+            currentId = Integer.parseInt(msg[4]);\r
+            packetLen = Integer.parseInt(msg[5]);\r
 \r
-            StringBuffer stringBuffer=new StringBuffer();\r
+            StringBuffer stringBuffer = new StringBuffer();\r
             stringBuffer.append("getBP28AmrLen name = ").append(Name)\r
                     .append(",appendIndex = ").append(appendIndex)\r
                     .append(",packetCount = ").append(packetCount)\r
@@ -309,14 +312,15 @@ public class protocol_jiai {
                     .append(",packetLen = ").append(packetLen);\r
 \r
 \r
-            log( stringBuffer.toString());\r
+            log(stringBuffer.toString());\r
             return packetLen;\r
-        }else{\r
-            log("getBP28AmrLen","format Error");\r
+        } else {\r
+            log("getBP28AmrLen", "format Error");\r
 \r
         }\r
         return -1;\r
     }\r
+\r
     /*登录*/\r
     public static String AP00(Runtime ds) {\r
         //示例数据:IWAP00867155030001063#\r
@@ -324,12 +328,12 @@ public class protocol_jiai {
     }\r
 \r
     //处理 登录 BP00\r
-    public void handleBP00(Runtime runtime,String cmd){\r
-        String[] msg=cmd.split(CMDSPLIT);\r
+    public void handleBP00(Runtime runtime, String cmd) {\r
+        String[] msg = cmd.split(CMDSPLIT);\r
 //        get Msg :IWBP00,20191229171933,8# (size)24\r
 //        12-30 01:19:33.861 6492-6492/com.enqualcomm.support I/ICSrv.protocolAPIHelper: found cmd keyid=BP00 ,keyname=BP00 ,  IWBP00,20191229171933,8\r
 \r
-        if (msg.length>=3) {\r
+        if (msg.length >= 3) {\r
             log("handleBP00", "Set Datetime " + msg[1]);\r
             log("handleBP00", "Set TimeZone " + msg[2]);\r
 \r
@@ -348,27 +352,28 @@ public class protocol_jiai {
 //            Set Datetime 20200505112734\r
 //            Set TimeZone 8\r
 \r
-        }else{\r
-            log("handleBP00","format Error");\r
+        } else {\r
+            log("handleBP00", "format Error");\r
         }\r
     }\r
 \r
 \r
     public static String AP03(Runtime ds) {\r
         //示例数据:IWAP03,06000908000102,5555,30#  IWAP03,000000null00000,0,0#\r
-        return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d",abs(ds.getSignalStrength())))\r
+        return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d", abs(ds.getSignalStrength())))\r
                 .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
                 .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
                 .append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString();\r
     }\r
+\r
     //处理 心跳 BP03\r
-    public void handleBP03(String cmd){\r
+    public void handleBP03(String cmd) {\r
 \r
         log("BP03心跳接收成功");\r
     }\r
 \r
 \r
-    public static String AP10(Runtime ds){\r
+    public static String AP10(Runtime ds) {\r
 \r
         /**\r
          * IWAP10080524A2232.9806N11404.9355E000.1  061830  323.87  060 009 080 0 05 02,\r
@@ -392,7 +397,7 @@ public class protocol_jiai {
          * 00:第一个0:是否需要回复地址信息,0:不回复,1回复.\r
          */\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate())\r
-                .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength())))\r
+                .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d", abs(ds.getSignalStrength())))\r
                 .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
                 .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
                 .append(ds.getLBSData()).append(CMDSPLIT)\r
@@ -410,19 +415,18 @@ public class protocol_jiai {
         // Home|74-DE-2B-44-88-8C|97& Home1|74-DE-2B-44-88-8C|97&Home2|74-DE-2B-44-88-8C|97& Home3|74-DE-2B-44-88-8C|97#\r
 //        IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,#\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())\r
-                .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength())))\r
+                .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d", abs(ds.getSignalStrength())))\r
                 .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")\r
                 .append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)\r
                 .append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString();\r
     }\r
 \r
     //处理 定位 BP01\r
-    public void handleBP01(String cmd){\r
+    public void handleBP01(String cmd) {\r
         log("BP01定位接收成功");\r
     }\r
 \r
 \r
-\r
     /*LBS+WiFi混合定位*/\r
     public static String AP02(Runtime ds) {\r
         //示例数据:IWAP02,\r
@@ -444,14 +448,14 @@ public class protocol_jiai {
 //        4: 表示WIFI组数,\r
 //                1|D8-24-BD-79-FA-1F|59: ssid|mac地址|信号强度,信号强度转正数:150 – abs(信号强度)\r
 \r
-        int apsum=0;\r
-        String wifiinfo=ds.getWifiInfo();\r
+        int apsum = 0;\r
+        String wifiinfo = ds.getWifiInfo();\r
         if (!wifiinfo.isEmpty()) {\r
             String[] list = wifiinfo.split("&");\r
             apsum = list.length;\r
         }\r
 \r
-        ICLogger.i("Wifi ap sum "+apsum);\r
+        ICLogger.i("Wifi ap sum " + apsum);\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)\r
                 .append(ds.getLanguage()).append(CMDSPLIT)\r
                 .append(0).append(CMDSPLIT) //为0时不回复地址\r
@@ -460,13 +464,12 @@ public class protocol_jiai {
     }\r
 \r
     //处理 定位 BP01\r
-    public void handleBP02(String cmd){\r
+    public void handleBP02(String cmd) {\r
         log("BP02定位接收成功");\r
     }\r
 \r
 \r
-\r
-    public static String APXL(String id){\r
+    public static String APXL(String id) {\r
 //设备响应:      IWAPXL,080835#\r
         //080835:指令流水号\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL))\r
@@ -476,10 +479,11 @@ public class protocol_jiai {
 \r
     /**\r
      * 测量心率\r
+     *\r
      * @param cmd\r
      * @param connection\r
      */\r
-    public void handleBPXL(String cmd, Connection connection){\r
+    public void handleBPXL(String cmd, Connection connection) {\r
         //IWBPXL,353456789012345,080835#\r
         //说明:\r
         //IW:标识符\r
@@ -488,19 +492,19 @@ public class protocol_jiai {
         //080835 :指令流水号\r
         //设备响应:      IWAPXL,080835#\r
         //080835:指令流水号\r
-        String[] list=cmd.split(CMDSPLIT);\r
-        if (list.length==3){\r
-            String index=list[2];\r
-            String imei=list[1];\r
-            ICLogger.i("Handle BPXL IMEI "+imei+",index "+index);\r
-            connection.send(genStringMessage("APXL",APXL(index)));\r
-        }else{\r
+        String[] list = cmd.split(CMDSPLIT);\r
+        if (list.length == 3) {\r
+            String index = list[2];\r
+            String imei = list[1];\r
+            ICLogger.i("Handle BPXL IMEI " + imei + ",index " + index);\r
+            connection.send(genStringMessage("APXL", APXL(index)));\r
+        } else {\r
             ICLogger.i("BPXL format error!");\r
         }\r
 \r
     }\r
 \r
-    public static String APXY(String id){\r
+    public static String APXY(String id) {\r
 //设备响应:      IWAPXY,080835#\r
         //080835:指令流水号\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY))\r
@@ -510,10 +514,11 @@ public class protocol_jiai {
 \r
     /**\r
      * 测量血压\r
+     *\r
      * @param cmd\r
      * @param connection\r
      */\r
-    public void handleBPXY(String cmd,Connection connection){\r
+    public void handleBPXY(String cmd, Connection connection) {\r
         //IWBPXY,353456789012345,080835#\r
         //说明:\r
         //IW:标识符\r
@@ -522,21 +527,20 @@ public class protocol_jiai {
         //080835 :指令流水号\r
         //设备响应:      IWAPXY,080835#\r
         //080835:指令流水号\r
-        String[] list=cmd.split(CMDSPLIT);\r
-        if (list.length==3){\r
-            String index=list[2];\r
-            String imei=list[1];\r
-            ICLogger.i("Handle BPXY IMEI "+imei+",index "+index);\r
-            connection.send(genStringMessage("APXY",APXY(index)));\r
-        }else{\r
+        String[] list = cmd.split(CMDSPLIT);\r
+        if (list.length == 3) {\r
+            String index = list[2];\r
+            String imei = list[1];\r
+            ICLogger.i("Handle BPXY IMEI " + imei + ",index " + index);\r
+            connection.send(genStringMessage("APXY", APXY(index)));\r
+        } else {\r
             ICLogger.i("BPXY format error!");\r
         }\r
 \r
     }\r
 \r
 \r
-\r
-    public static String APJZ(String id,String BPH,String BPL,String Age,String Sex){\r
+    public static String APJZ(String id, String BPH, String BPL, String Age, String Sex) {\r
         //设备响应:      IWAPJZ,792997,120,85,42,1#\r
         //792997:指令流水号\r
         // 高压120,低压85,年龄42,1 男性\r
@@ -550,12 +554,11 @@ public class protocol_jiai {
     }\r
 \r
     /**\r
-     *\r
      * @param cmd\r
      * @param connection\r
      * @param runtime\r
      */\r
-    public void handleBPJZ(String cmd,Connection connection,Runtime runtime){\r
+    public void handleBPJZ(String cmd, Connection connection, Runtime runtime) {\r
         //cmdbuf.size 42 IWBPJZ,867155030001063,199600,120,85,45,1#   高压120,低压85,年龄45,男性\r
 //        cmdbuf.size 42 IWBPJZ,867155030001063,909957,120,85,42,0#  高压120,低压85,年龄42,女性\r
         //IWBPJZ,353456789012345,080835,110,75#\r
@@ -568,58 +571,58 @@ public class protocol_jiai {
         //080835 :指令流水号\r
         //设备响应:      IWAPJZ,792997,120,85,42,1#\r
         //792997:指令流水号\r
-        String[] list=cmd.split(CMDSPLIT);\r
-        if (list.length==7){\r
-            String index=list[2];\r
-            String imei=list[1];\r
-            String strBPH=list[3];\r
-            String strBPL=list[4];\r
-            String strAge=list[5];\r
-            String strSex=list[6];\r
-\r
-            connection.send(genStringMessage("APJZ",APJZ(index,strBPH,strBPL,strAge,strSex)));\r
-            runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH),Integer.parseInt(strBPL),Integer.parseInt(strAge),Integer.parseInt(strSex));\r
-            ICLogger.i("Handle BPJZ IMEI "+imei+",index "+index+", BPH "+strBPH+", BPL "+strBPL+", Age "+ strAge +", Sex "+ (strSex.equals("1")?"男":"女"));\r
-        }else{\r
+        String[] list = cmd.split(CMDSPLIT);\r
+        if (list.length == 7) {\r
+            String index = list[2];\r
+            String imei = list[1];\r
+            String strBPH = list[3];\r
+            String strBPL = list[4];\r
+            String strAge = list[5];\r
+            String strSex = list[6];\r
+\r
+            connection.send(genStringMessage("APJZ", APJZ(index, strBPH, strBPL, strAge, strSex)));\r
+            runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH), Integer.parseInt(strBPL), Integer.parseInt(strAge), Integer.parseInt(strSex));\r
+            ICLogger.i("Handle BPJZ IMEI " + imei + ",index " + index + ", BPH " + strBPH + ", BPL " + strBPL + ", Age " + strAge + ", Sex " + (strSex.equals("1") ? "男" : "女"));\r
+        } else {\r
             ICLogger.i("BPXY format error!");\r
         }\r
     }\r
 \r
 \r
-\r
     //重启\r
 \r
 \r
-    public static String AP18(String index){\r
+    public static String AP18(String index) {\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18))\r
                 .append(CMDSPLIT).append(index)\r
                 .append(CMDEND).toString();\r
     }\r
 \r
-    public void handleBP18(Connection connection,String cmd) {\r
+    public void handleBP18(Connection connection, String cmd) {\r
 \r
         //    IWBP18,867155030001063,161723\r
-        String[] cmdlist=cmd.split(CMDSPLIT);\r
-        if (cmdlist.length==3) {\r
+        String[] cmdlist = cmd.split(CMDSPLIT);\r
+        if (cmdlist.length == 3) {\r
 \r
-            connection.send(genStringMessage("AP18",AP18(cmdlist[2])));\r
+            connection.send(genStringMessage("AP18", AP18(cmdlist[2])));\r
 \r
         }\r
     }\r
     //恢复出厂设置\r
 \r
-    public static String AP17(String index){\r
+    public static String AP17(String index) {\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17))\r
                 .append(CMDSPLIT).append(index)\r
                 .append(CMDEND).toString();\r
     }\r
-    public void handleBP17(Connection connection,String cmd) {\r
+\r
+    public void handleBP17(Connection connection, String cmd) {\r
 \r
         //    IWBP17,867155030001063,161723\r
-        String[] cmdlist=cmd.split(CMDSPLIT);\r
-        if (cmdlist.length==3) {\r
+        String[] cmdlist = cmd.split(CMDSPLIT);\r
+        if (cmdlist.length == 3) {\r
 \r
-            connection.send(genStringMessage("AP17",AP17(cmdlist[2])));\r
+            connection.send(genStringMessage("AP17", AP17(cmdlist[2])));\r
 \r
         }\r
     }\r
@@ -627,24 +630,25 @@ public class protocol_jiai {
     //关机\r
 \r
 \r
-    public static String AP31(String index){\r
+    public static String AP31(String index) {\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))\r
                 .append(CMDSPLIT).append(index)\r
                 .append(CMDEND).toString();\r
     }\r
-    public void handleBP31(Connection connection,String cmd) {\r
+\r
+    public void handleBP31(Connection connection, String cmd) {\r
 \r
         //    IWBP31,867155030001063,161723\r
-        String[] cmdlist=cmd.split(CMDSPLIT);\r
-        if (cmdlist.length==3) {\r
+        String[] cmdlist = cmd.split(CMDSPLIT);\r
+        if (cmdlist.length == 3) {\r
 \r
-            connection.send(genStringMessage("AP31",AP31(cmdlist[2])));\r
+            connection.send(genStringMessage("AP31", AP31(cmdlist[2])));\r
 \r
         }\r
     }\r
 \r
     //设置SOS号码\r
-    public static String AP12(String index,String phNum1,String phNum2,String phNum3){\r
+    public static String AP12(String index, String phNum1, String phNum2, String phNum3) {\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12))\r
                 .append(CMDSPLIT).append(index)\r
                 .append(CMDSPLIT).append(phNum1)\r
@@ -654,31 +658,34 @@ public class protocol_jiai {
     }\r
 \r
     //设置SOS号码\r
-    public void handleBP12(Connection connection,String cmd,Runtime runtime){\r
+    public void handleBP12(Connection connection, String cmd, Runtime runtime) {\r
         //    IWBP12,353456789012345,080835,135XXXXXXXX,135XXXXXXXX,135XXXXXXXX#\r
-        String[] cmdlist=cmd.split(CMDSPLIT);\r
-        if (cmdlist.length>=3){\r
-            String index=cmdlist[2];\r
-            String phNum1=cmdlist.length==3?"":cmdlist[3];\r
-            String phNum2=cmdlist.length>3?(cmdlist.length==4?"":cmdlist[4]):"";\r
-            String phNum3=(cmdlist.length>4)?(cmdlist.length==5? "":cmdlist[5]):"";\r
-            ICLogger.i(new StringBuffer().append("get Emegency Numbs "+phNum1+","+phNum2+","+phNum3).toString());\r
-            connection.send(genStringMessage("AP12",AP12(index,phNum1,phNum2,phNum3)));\r
-\r
-            ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
-            if (!phNum1.isEmpty())  contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos1",phNum1));\r
-            if (!phNum2.isEmpty())  contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos2",phNum2));\r
-            if (!phNum3.isEmpty())  contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos3",phNum3));\r
-\r
-            runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);\r
-\r
-        }else{\r
+        String[] cmdlist = cmd.split(CMDSPLIT);\r
+        if (cmdlist.length >= 3) {\r
+            String index = cmdlist[2];\r
+            String phNum1 = cmdlist.length == 3 ? "" : cmdlist[3];\r
+            String phNum2 = cmdlist.length > 3 ? (cmdlist.length == 4 ? "" : cmdlist[4]) : "";\r
+            String phNum3 = (cmdlist.length > 4) ? (cmdlist.length == 5 ? "" : cmdlist[5]) : "";\r
+            ICLogger.i(new StringBuffer().append("get Emegency Numbs " + phNum1 + "," + phNum2 + "," + phNum3).toString());\r
+            connection.send(genStringMessage("AP12", AP12(index, phNum1, phNum2, phNum3)));\r
+\r
+            ArrayList<Contact> contactArray = new ArrayList<Contact>();\r
+            if (!phNum1.isEmpty())\r
+                contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", phNum1));\r
+            if (!phNum2.isEmpty())\r
+                contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum2));\r
+            if (!phNum3.isEmpty())\r
+                contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum3));\r
+\r
+            runtime.getDbHelper().saveContacts(contactArray, false, false, false, false, false, true);\r
+\r
+        } else {\r
             ICLogger.i(" BP12 format error!");\r
         }\r
     }\r
 \r
 \r
-    public static String  AP14(String index,String[] phnumbs){\r
+    public static String AP14(String index, String[] phnumbs) {\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14))\r
                 .append(CMDSPLIT).append(index)\r
                 .append(CMDSPLIT).append(phnumbs[0])\r
@@ -693,8 +700,9 @@ public class protocol_jiai {
                 .append(CMDSPLIT).append(phnumbs[9])\r
                 .append(CMDEND).toString();\r
     }\r
+\r
     //设置通讯录,白名单(10个)\r
-    public void handleBP14(Connection connection,String cmd , Runtime runtime){\r
+    public void handleBP14(Connection connection, String cmd, Runtime runtime) {\r
 //        IWBP14,867155030001063,357444,9b44529b|13554820016,,,,,,,,,\r
 /**\r
  * IWBP14,353456789012345,080835,\r
@@ -709,57 +717,57 @@ public class protocol_jiai {
  * D3590D54|135xxxxxxxxxx,\r
  * D3590D54|135xxxxxxxxxx#\r
  */\r
-        String[] cmdlist=cmd.split(CMDSPLIT);\r
-        String[] phnums=new String[]{"","","","","","","","","",""};\r
-        StringBuffer sb=new StringBuffer().append("recv phone Numbs ");\r
-        if (cmdlist.length>=3){\r
-            switch (cmdlist.length){\r
+        String[] cmdlist = cmd.split(CMDSPLIT);\r
+        String[] phnums = new String[]{"", "", "", "", "", "", "", "", "", ""};\r
+        StringBuffer sb = new StringBuffer().append("recv phone Numbs ");\r
+        if (cmdlist.length >= 3) {\r
+            switch (cmdlist.length) {\r
                 case 13:\r
-                    phnums[9]=cmdlist[12];\r
+                    phnums[9] = cmdlist[12];\r
                     sb.append(phnums[9]).append(",");\r
                 case 12:\r
-                    phnums[8]=cmdlist[11];\r
+                    phnums[8] = cmdlist[11];\r
                     sb.append(phnums[8]).append(",");\r
                 case 11:\r
-                    phnums[7]=cmdlist[10];\r
+                    phnums[7] = cmdlist[10];\r
                     sb.append(phnums[7]).append(",");\r
                 case 10:\r
-                    phnums[6]=cmdlist[9];\r
+                    phnums[6] = cmdlist[9];\r
                     sb.append(phnums[6]).append(",");\r
                 case 9:\r
-                    phnums[5]=cmdlist[8];\r
+                    phnums[5] = cmdlist[8];\r
                     sb.append(phnums[5]).append(",");\r
                 case 8:\r
-                    phnums[4]=cmdlist[7];\r
+                    phnums[4] = cmdlist[7];\r
                     sb.append(phnums[4]).append(",");\r
                 case 7:\r
-                    phnums[3]=cmdlist[6];\r
+                    phnums[3] = cmdlist[6];\r
                     sb.append(phnums[3]).append(",");\r
                 case 6:\r
-                    phnums[2]=cmdlist[5];\r
+                    phnums[2] = cmdlist[5];\r
                     sb.append(phnums[2]).append(",");\r
                 case 5:\r
-                    phnums[1]=cmdlist[4];\r
+                    phnums[1] = cmdlist[4];\r
                     sb.append(phnums[1]).append(",");\r
                 case 4:\r
-                    phnums[0]=cmdlist[3];\r
+                    phnums[0] = cmdlist[3];\r
                     sb.append(phnums[0]).append(",");\r
 \r
             }\r
 \r
-            String index=cmdlist[2];\r
+            String index = cmdlist[2];\r
             ICLogger.i(sb.toString());\r
-            connection.send(genStringMessage("AP14",AP14(index,phnums)));\r
-            ArrayList<Contact> contactArray=new ArrayList<Contact>();\r
-            for (int i=0; i< phnums.length;i++){\r
-                String[] tmp= phnums[i].split("\\|");\r
-                if (tmp.length==2){\r
-                    String name= Util.decodeUnicode2Utf8(tmp[0]);\r
-                    String phonem=tmp[1];\r
-                    ICLogger.i("phnums["+i+"]="+phnums[i]+",split = "+tmp.length+" , name="+name+",-"+phonem);\r
-                    contactArray.add(new Contact(Contact.CATEGORY_CALL,name,phonem));\r
-                }else{\r
-                    ICLogger.i("phnums["+i+"]="+phnums[i]+",split = "+tmp.length);\r
+            connection.send(genStringMessage("AP14", AP14(index, phnums)));\r
+            ArrayList<Contact> contactArray = new ArrayList<Contact>();\r
+            for (int i = 0; i < phnums.length; i++) {\r
+                String[] tmp = phnums[i].split("\\|");\r
+                if (tmp.length == 2) {\r
+                    String name = Util.decodeUnicode2Utf8(tmp[0]);\r
+                    String phonem = tmp[1];\r
+                    ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length + " , name=" + name + ",-" + phonem);\r
+                    contactArray.add(new Contact(Contact.CATEGORY_CALL, name, phonem));\r
+                } else {\r
+                    ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length);\r
 \r
                 }\r
             }\r
@@ -768,25 +776,25 @@ public class protocol_jiai {
 //            contactArray.add(new Contact(Contact.CATEGORY_CARE,"CARE","666"));\r
 //            contactArray.add(new Contact(Contact.CATEGORY_VOLTE,"VOLTE","666"));\r
 \r
-            runtime.getDbHelper().saveContacts(contactArray,false,false,true,false,false,false);\r
+            runtime.getDbHelper().saveContacts(contactArray, false, false, true, false, false, false);\r
 \r
-        }else{\r
+        } else {\r
             ICLogger.i(" BP14 format error!");\r
         }\r
 \r
     }\r
 \r
 \r
-\r
-    public static String AP85(Runtime ds,String cmddata){\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 handleBP85(String cmd , Connection connection,Runtime runtime){\r
+    public void handleBP85(String cmd, Connection connection, Runtime runtime) {\r
 //        IWBP85,867155030001063,155312,1,1,0235,12,1,1\r
 //        IWBP85,867155030002145,945166,1,0,\r
 //        IWBP85,867155030001064,265960,1,1,1130,,1,1\r
@@ -802,28 +810,28 @@ public class protocol_jiai {
 //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
-        ArrayList<Alarm> alarmlist=new ArrayList<>();\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.parseInt(cmdarglist[3]);\r
-                        alarmcount=Integer.parseInt(cmdarglist[4]);\r
-                        alarmtime=cmdarglist[5];\r
-                        repeat=cmdarglist[6];\r
-                        alarmswitch=Integer.parseInt(cmdarglist[7]);\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
+        ArrayList<Alarm> alarmlist = new ArrayList<>();\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.parseInt(cmdarglist[3]);\r
+                        alarmcount = Integer.parseInt(cmdarglist[4]);\r
+                        alarmtime = cmdarglist[5];\r
+                        repeat = cmdarglist[6];\r
+                        alarmswitch = Integer.parseInt(cmdarglist[7]);\r
                         alarmtype = Integer.parseInt(cmdarglist[8]);\r
                         log(new StringBuilder("imei ").append(imei)\r
                                 .append(", cmdindex ").append(cmdindex)\r
@@ -838,21 +846,21 @@ public class protocol_jiai {
                                 .append(", alarmtype=").append(alarmtype)\r
                                 .toString()\r
                         );\r
-                        alarmlist.add(new Alarm("ST"+alarmtime.substring(0,2)+"."+alarmtime.substring(2),"W"+repeat,"CON",alarmswitch==1?"ON":"OFF","闹铃"));\r
-\r
-                    }else if (cmdarglist.length == 5) {\r
-                        imei=cmdarglist[1];\r
-                        cmdindex=cmdarglist[2];\r
-                        all_alarmswitch=Integer.parseInt(cmdarglist[3]);\r
-                        alarmcount=Integer.parseInt(cmdarglist[4]);\r
-                    }else{\r
+                        alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));\r
+\r
+                    } else if (cmdarglist.length == 5) {\r
+                        imei = cmdarglist[1];\r
+                        cmdindex = cmdarglist[2];\r
+                        all_alarmswitch = Integer.parseInt(cmdarglist[3]);\r
+                        alarmcount = Integer.parseInt(cmdarglist[4]);\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.parseInt(cmdarglist[2]);\r
+                } else {\r
+                    if (cmdarglist.length == 4) {\r
+                        alarmtime = cmdarglist[0];\r
+                        repeat = cmdarglist[1];\r
+                        alarmswitch = Integer.parseInt(cmdarglist[2]);\r
                         alarmtype = Integer.parseInt(cmdarglist[3]);\r
 \r
                         log(new StringBuilder("set alarmtime ").append(alarmtime)\r
@@ -862,9 +870,9 @@ public class protocol_jiai {
                                 .toString()\r
                         );\r
 \r
-                        alarmlist.add(new Alarm("ST"+alarmtime.substring(0,2)+"."+alarmtime.substring(2),"W"+repeat,"CON",alarmswitch==1?"ON":"OFF","闹铃"));\r
+                        alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));\r
 \r
-                    }else{\r
+                    } else {\r
                         log("data len is too small!");\r
                     }\r
 \r
@@ -877,10 +885,10 @@ public class protocol_jiai {
         }\r
 //IWBP85,867155030002145,410385,1,0,#\r
 \r
-        String replacement=new StringBuilder("IWBP85,").append(imei).append(",").toString();\r
-        String replycmd = cmd.replace(replacement,"");\r
-        ICLogger.i("gen reply "+replacement+" "+replycmd);\r
-        connection.send(genStringMessage("AP85",AP85(runtime,replycmd)));\r
+        String replacement = new StringBuilder("IWBP85,").append(imei).append(",").toString();\r
+        String replycmd = cmd.replace(replacement, "");\r
+        ICLogger.i("gen reply " + replacement + " " + replycmd);\r
+        connection.send(genStringMessage("AP85", AP85(runtime, replycmd)));\r
     }\r
 \r
 \r
@@ -904,9 +912,7 @@ public class protocol_jiai {
 //    }\r
 \r
 \r
-\r
-\r
-    public static byte[] AP07(String  packetTime,int count,int index,int datalen,byte[] amrdata){\r
+    public static byte[] AP07(String packetTime, int count, int index, int datalen, byte[] amrdata) {\r
 //IWAP07,20140818064408,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#\r
 //说明:\r
 //IW:标识符\r
@@ -922,51 +928,50 @@ public class protocol_jiai {
 //如果设备回复确认数据包接收失败状态,则重复发送上一个数据包\r
 \r
 \r
-        String sb=new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP07))\r
+        String sb = new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP07))\r
                 .append(CMDSPLIT).append(packetTime)\r
                 .append(CMDSPLIT).append(count)\r
                 .append(CMDSPLIT).append(index)\r
                 .append(CMDSPLIT).append(datalen)\r
                 .append(CMDSPLIT).toString();\r
 \r
-        byte[] sentbuf=new byte[sb.length()+datalen+1];\r
-        System.arraycopy(sb.getBytes(),0,sentbuf,0,sb.length());\r
-        System.arraycopy(amrdata,0,sentbuf,sb.length(),datalen);\r
-        sentbuf[sb.length()+datalen]='#';\r
+        byte[] sentbuf = new byte[sb.length() + datalen + 1];\r
+        System.arraycopy(sb.getBytes(), 0, sentbuf, 0, sb.length());\r
+        System.arraycopy(amrdata, 0, sentbuf, sb.length(), datalen);\r
+        sentbuf[sb.length() + datalen] = '#';\r
 \r
         return sentbuf;\r
 \r
     }\r
 \r
 \r
-    public void handleBP07(String cmd , NettyConnection connection ){\r
+    public void handleBP07(String cmd, NettyConnection connection) {\r
 //平台响应:      IWBP07,20140818064408,6,1,1#\r
 //20140818064408:设备语音时间,yyyyMMddHHmmss 格式的年月日时分秒\r
 //6:语音包分包总数\r
 //1:当前设备收到的是第几个包\r
 //1:表示服务器接受数据成功,0表示服务器接受数据失败\r
-        String[] cmdlist=cmd.split(CMDSPLIT);\r
-        if (cmdlist.length==5){\r
-            String time=cmdlist[1];\r
-            int packetCount=Integer.parseInt(cmdlist[2]);\r
-            int packetIndex=Integer.parseInt(cmdlist[3]);\r
-            int receiveSuccess=Integer.parseInt(cmdlist[4]);\r
-            ICLogger.i("服务器在"+time+" 收到语音 "+packetIndex+"/"+packetCount+" "+ (receiveSuccess==1?"成功":"失敗"));\r
-            if (receiveSuccess == 1){\r
+        String[] cmdlist = cmd.split(CMDSPLIT);\r
+        if (cmdlist.length == 5) {\r
+            String time = cmdlist[1];\r
+            int packetCount = Integer.parseInt(cmdlist[2]);\r
+            int packetIndex = Integer.parseInt(cmdlist[3]);\r
+            int receiveSuccess = Integer.parseInt(cmdlist[4]);\r
+            ICLogger.i("服务器在" + time + " 收到语音 " + packetIndex + "/" + packetCount + " " + (receiveSuccess == 1 ? "成功" : "失敗"));\r
+            if (receiveSuccess == 1) {\r
                 //如果服务器接收 语音成功,则设置下一个要发送的语音包Index,当index == packetCount的时候表示所有包发送完毕,停止继续发送\r
                 voicePacket.getInstanceSent().setCurrentIndexToSent(packetIndex);\r
             }\r
             //发送消息,再次检查要发送的语音包,确认其发送完毕\r
-            connection.DeliverCMDMessageToSystem("SentVoicePacket","SentVoicePacket");\r
+            connection.DeliverCMDMessageToSystem("SentVoicePacket", "SentVoicePacket");\r
 \r
-        }else{\r
+        } else {\r
             ICLogger.i(" BP07 Format error!");\r
         }\r
     }\r
 \r
 \r
-\r
-    public static String AP33(String cmdindex,int workMode){\r
+    public static String AP33(String cmdindex, int workMode) {\r
 //IWAP33,080835,1#\r
 //080835:指令流水号\r
 //1:设置信息,供服务器同步\r
@@ -977,7 +982,7 @@ public class protocol_jiai {
     }\r
 \r
     //设置工作模式\r
-    public void handleBP33(Connection connection,Runtime runtime,String cmd){\r
+    public void handleBP33(Connection connection, Runtime runtime, String cmd) {\r
 \r
 //    IWBP33,867155030001063,560555,1\r
 //        IW:标识符\r
@@ -986,34 +991,34 @@ public class protocol_jiai {
 //        080835:指令流水号\r
 //        1:设备工作模式,1:正常模式,2:省电模式,3:紧急模式\r
 \r
-        String[] cmdlist=cmd.split(",");\r
-        if (cmdlist.length == 4){\r
+        String[] cmdlist = cmd.split(",");\r
+        if (cmdlist.length == 4) {\r
 \r
 \r
-            log("work mode "+cmdlist[3]);\r
-            int mod=Integer.parseInt(cmdlist[3]);\r
-            int Cycle=900;\r
-            switch(mod){\r
+            log("work mode " + cmdlist[3]);\r
+            int mod = Integer.parseInt(cmdlist[3]);\r
+            int Cycle = 900;\r
+            switch (mod) {\r
                 case ICLocation.NORMAL_MOD:\r
-                    Cycle=900;\r
+                    Cycle = 900;\r
                     break;\r
                 case ICLocation.LOWPOWER_MOD:\r
-                    Cycle=3600;\r
+                    Cycle = 3600;\r
                     break;\r
                 case ICLocation.EMERGNECY_MOD:\r
                 case ICLocation.REALTIME_MOD:\r
-                    Cycle=60;\r
+                    Cycle = 60;\r
                     break;\r
 \r
             }\r
 \r
-            String msg=AP33(cmdlist[2],mod);\r
+            String msg = AP33(cmdlist[2], mod);\r
             //设定当前工作模式及循环频率\r
-            connection.send(genStringMessage("AP33",msg));\r
-            log("reply msg "+msg);\r
-            log("LOCATION_MODE  "+LOCATION_MODE+" mod "+ mod);\r
-            Config.setLocationMode(runtime.getContextProxy().context,mod);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
+            connection.send(genStringMessage("AP33", msg));\r
+            log("reply msg " + msg);\r
+            log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod);\r
+            Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+            Config.setLocationCycle(runtime.getContextProxy().context, Cycle);\r
             runtime.getLocationInstance().setLocation_cycle(Cycle);\r
             runtime.getLocationInstance().setWorkingMod(mod);\r
 //            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
@@ -1023,7 +1028,7 @@ public class protocol_jiai {
     }\r
 \r
 \r
-    public static String AP34(String cmdindex,int workMode){\r
+    public static String AP34(String cmdindex, int workMode) {\r
 //IWAP34,588854,1#\r
 //080835:指令流水号\r
 //8:模式\r
@@ -1034,7 +1039,7 @@ public class protocol_jiai {
     }\r
 \r
     //设置自定义工作模式\r
-    public void handleBP34(Connection connection,Runtime runtime,String cmd){\r
+    public void handleBP34(Connection connection, Runtime runtime, String cmd) {\r
 \r
 //    IWBP34,867155030001063,588854,8,900,1#\r
 //        IW:标识符\r
@@ -1043,28 +1048,28 @@ public class protocol_jiai {
 //        080835:指令流水号\r
 //        1:设备工作模式,1:正常模式,2:省电模式,3:紧急模式\r
 \r
-        String[] cmdlist=cmd.split(",");\r
-        if (cmdlist.length == 6){\r
+        String[] cmdlist = cmd.split(",");\r
+        if (cmdlist.length == 6) {\r
 \r
 \r
-            log("work mode "+cmdlist[3]);\r
-            int mod=Integer.parseInt(cmdlist[3]);\r
-            int Cycle=Integer.parseInt(cmdlist[4]);\r
-            int gpson=Integer.parseInt(cmdlist[5]);\r
+            log("work mode " + cmdlist[3]);\r
+            int mod = Integer.parseInt(cmdlist[3]);\r
+            int Cycle = Integer.parseInt(cmdlist[4]);\r
+            int gpson = Integer.parseInt(cmdlist[5]);\r
 \r
-            String msg=AP34(cmdlist[2],mod);\r
+            String msg = AP34(cmdlist[2], mod);\r
             //设定当前工作模式及循环频率\r
-            connection.send(genStringMessage("AP34",msg));\r
+            connection.send(genStringMessage("AP34", msg));\r
 \r
-            if(gpson==1){\r
-                mod=ICLocation.CUSTOM_MOD8_GPS;\r
-            }else{\r
-                mod=ICLocation.CUSTOM_MOD8_WIFI;\r
+            if (gpson == 1) {\r
+                mod = ICLocation.CUSTOM_MOD8_GPS;\r
+            } else {\r
+                mod = ICLocation.CUSTOM_MOD8_WIFI;\r
             }\r
-            log("reply msg "+msg);\r
-            log("LOCATION_MODE  "+LOCATION_MODE+" mod "+ mod + ", cycle = "+Cycle+", GPS On= "+gpson);\r
-            Config.setLocationMode(runtime.getContextProxy().context,mod);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Cycle);\r
+            log("reply msg " + msg);\r
+            log("LOCATION_MODE  " + LOCATION_MODE + " mod " + mod + ", cycle = " + Cycle + ", GPS On= " + gpson);\r
+            Config.setLocationMode(runtime.getContextProxy().context, mod);\r
+            Config.setLocationCycle(runtime.getContextProxy().context, Cycle);\r
             runtime.getLocationInstance().setLocation_cycle(Cycle);\r
             runtime.getLocationInstance().setWorkingMod(mod);\r
 //            CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
@@ -1075,10 +1080,11 @@ public class protocol_jiai {
 \r
     /**\r
      * 心率上传,返回协议字串\r
+     *\r
      * @param ds\r
      * @return\r
      */\r
-    public static String AP49(Runtime ds){\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(ds.getHRS().getPPG())\r
@@ -1087,14 +1093,13 @@ public class protocol_jiai {
     }\r
 \r
 \r
-\r
-\r
     /**\r
      * 返回上传心率血压的协议字串\r
+     *\r
      * @param ds\r
      * @return\r
      */\r
-    public static String APHT(Runtime ds){\r
+    public static String APHT(Runtime ds) {\r
         //IWAPHT,60,130,85#\r
         //说明:\r
         //IW:标识符\r
@@ -1110,7 +1115,8 @@ public class protocol_jiai {
                 .append(CMDSPLIT).append(ds.getHRS().getBPL())\r
                 .append(CMDEND).toString();\r
     }\r
-    public static String APHT(int  ppg,int bph,int bpl){\r
+\r
+    public static String APHT(int ppg, int bph, int bpl) {\r
         //IWAPHT,60,130,85#\r
         //说明:\r
         //IW:标识符\r
@@ -1129,15 +1135,16 @@ public class protocol_jiai {
 \r
 \r
     //立即定位反馈\r
-    public static String AP16(String  cmdindex){\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
     //    立即定位指令(长链接有效)\r
-    public void handleBP16(Connection connection,Runtime runtime,String cmd){\r
+    public void handleBP16(Connection connection, Runtime runtime, String cmd) {\r
         //示例数据:IWBP16,867155030001063,335386\r
 //        IWBP16,353456789012345,080835#\r
 //        说明:\r
@@ -1146,18 +1153,18 @@ public class protocol_jiai {
 //        353456789012345:IMEI号,设备唯一ID\r
 //        080835 :指令流水号\r
         String[] cmdlist = cmd.split(",");\r
-        if(cmdlist.length==3){\r
-            log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]);\r
+        if (cmdlist.length == 3) {\r
+            log("imei " + cmdlist[1] + ", cmdindex " + cmdlist[2]);\r
 \r
-            connection.send(genStringMessage("AP16",AP16(cmdlist[2])));\r
-        }else{\r
+            connection.send(genStringMessage("AP16", AP16(cmdlist[2])));\r
+        } else {\r
             log("error BP16 format");\r
         }\r
     }\r
 \r
 \r
     /*通过基站获取时间和坐标*/\r
-    public static String APTM(Runtime ds){\r
+    public static String APTM(Runtime ds) {\r
         //示例数据:IWAPTM,460,0,9750,3613#\r
         //说明:\r
         //IW:标识符\r
@@ -1176,26 +1183,26 @@ public class protocol_jiai {
 \r
     }\r
 \r
-    public void handleBPTM(String cmd){\r
+    public void handleBPTM(String cmd) {\r
         //平台响应:      IWBPTM,20160225090909,22.123456,113.654321#\r
         //返回时间,格式为:yyyyMMddHHmmss ,为UTC0 时间\r
         //经纬度保留六位小数,若没取到则返回 0\r
-        String[] list=cmd.split(CMDSPLIT);\r
+        String[] list = cmd.split(CMDSPLIT);\r
 \r
-        if(list.length==4){\r
+        if (list.length == 4) {\r
 \r
-            String time=list[1];\r
-            String lat=list[2];\r
-            String lon=list[3];\r
-            ICLogger.i("BPTM , time="+time+", lat="+lat+", lon="+lon);\r
-        }else{\r
+            String time = list[1];\r
+            String lat = list[2];\r
+            String lon = list[3];\r
+            ICLogger.i("BPTM , time=" + time + ", lat=" + lat + ", lon=" + lon);\r
+        } else {\r
             ICLogger.i("BPTM format error");\r
         }\r
 \r
 \r
     }\r
 \r
-    public static String AP15(String index){\r
+    public static String AP15(String index) {\r
 //IWAP15, 080835#\r
 //080835:指令流水号\r
         return new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15))\r
@@ -1204,37 +1211,33 @@ public class protocol_jiai {
     }\r
 \r
     //设置定位周期\r
-    public void handleBP15(String cmd ,Connection connection,Runtime runtime){\r
+    public void handleBP15(String cmd, Connection connection, Runtime runtime) {\r
 //        IWBP15, 353456789012345, 080835, 30#\r
 //        353456789012345:IMEI号,设备唯一ID\r
 //        080835 :指令流水号\r
 //        30: 表示频率为30分钟\r
 \r
-        String[] list=cmd.split(CMDSPLIT);\r
+        String[] list = cmd.split(CMDSPLIT);\r
 \r
-        if(list.length==4){\r
-            String index=list[2];\r
-            String time=list[3];\r
-            connection.send(genStringMessage("AP15",AP15(index)));\r
-            ICLogger.i("BP15 , 定位周期="+time+"秒");\r
+        if (list.length == 4) {\r
+            String index = list[2];\r
+            String time = list[3];\r
+            connection.send(genStringMessage("AP15", AP15(index)));\r
+            ICLogger.i("BP15 , 定位周期=" + time + "秒");\r
 \r
             Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);\r
-            Config.setLocationCycle(runtime.getContextProxy().context,Integer.parseInt(time));\r
+            Config.setLocationCycle(runtime.getContextProxy().context, Integer.parseInt(time));\r
             runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context));\r
             runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context));\r
             //set AlarmCycle  and trigger Location\r
             CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
-        }else{\r
+        } else {\r
             ICLogger.i("BP15 format error");\r
         }\r
 \r
     }\r
 \r
 \r
-\r
-\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
@@ -1248,30 +1251,30 @@ public class protocol_jiai {
     }\r
 \r
     //处理 BP28 语音消息\r
-    public void handleBP28(NettyConnection connection,String cmd,Runtime runtime,byte[] bytes) {\r
+    public void handleBP28(NettyConnection connection, String cmd, Runtime runtime, byte[] bytes) {\r
         //log("handleBP28 msg"+cmd);\r
-/**\r
- * IWBP28, D3590D54,XXXX,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#\r
- * 说明:\r
- * IW:标识符\r
- * BP28 : 命令字符\r
- * D3590D54:UNICODE编码,发送者名称\r
- * XXXX: 附加信息,在响应数据包时,将附加信息原样响应,类似流水号\r
- * 6:语音包分包总数\r
- * 1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同\r
- * 1024 :语音包长度\r
- * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数\r
- * 语音包上传规则:\r
- * 按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。\r
- * 收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。\r
- * 如果设备回复确认数据包接收失败状态,则重复发送上一个数据包\r
- * 设备响应:     IWAP28,D3590D54,XXXX,6,1,1#\r
- * D3590D54:UNICODE编码,发送者名称\r
- * XXXX: 附加信息,原样返回\r
- * 6:语音包分包总数\r
- * 1:当前设备收到的是第几个包\r
- * 1:表示设备接受数据成功,0表示设备接受数据失败\r
- */\r
+        /**\r
+         * IWBP28, D3590D54,XXXX,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#\r
+         * 说明:\r
+         * IW:标识符\r
+         * BP28 : 命令字符\r
+         * D3590D54:UNICODE编码,发送者名称\r
+         * XXXX: 附加信息,在响应数据包时,将附加信息原样响应,类似流水号\r
+         * 6:语音包分包总数\r
+         * 1 :当前包数,第一包为1,第二包为2,。。。。。。同一个语音包的语音时间相同\r
+         * 1024 :语音包长度\r
+         * XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:当前音频数据, 每个音频数据包大小为1024字节,最后一包不足1024的取实际字节数\r
+         * 语音包上传规则:\r
+         * 按包次序依次上传,上传后如果没有收到服务器的响应包,则继续上传该语音包。\r
+         * 收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。\r
+         * 如果设备回复确认数据包接收失败状态,则重复发送上一个数据包\r
+         * 设备响应:     IWAP28,D3590D54,XXXX,6,1,1#\r
+         * D3590D54:UNICODE编码,发送者名称\r
+         * XXXX: 附加信息,原样返回\r
+         * 6:语音包分包总数\r
+         * 1:当前设备收到的是第几个包\r
+         * 1:表示设备接受数据成功,0表示设备接受数据失败\r
+         */\r
         String Name;\r
         String appendIndex;\r
         int packetCount;\r
@@ -1279,17 +1282,17 @@ public class protocol_jiai {
         int packetLen;\r
         byte[] packetData;\r
 \r
-        String[] msg= cmd.split(CMDSPLIT);\r
-        if (msg.length>=6){\r
-\r
-            Name=msg[1];\r
-            appendIndex=msg[2];\r
-            packetCount= Integer.parseInt(msg[3]);\r
-            currentId= Integer.parseInt(msg[4]);\r
-            packetLen= Integer.parseInt(msg[5]);\r
-            packetData= Util.subArray(bytes,msg[0].length()+msg[1].length()+msg[2].length()+msg[3].length()+msg[4].length()+msg[5].length()+6,bytes.length-1);\r
-\r
-            StringBuffer stringBuffer=new StringBuffer();\r
+        String[] msg = cmd.split(CMDSPLIT);\r
+        if (msg.length >= 6) {\r
+            //取出头部数据\r
+            Name = msg[1];\r
+            appendIndex = msg[2];\r
+            packetCount = Integer.parseInt(msg[3]);\r
+            currentId = Integer.parseInt(msg[4]);\r
+            packetLen = Integer.parseInt(msg[5]);\r
+            packetData = Util.subArray(bytes, msg[0].length() + msg[1].length() + msg[2].length() + msg[3].length() + msg[4].length() + msg[5].length() + 6, bytes.length - 1);\r
+            //拼装头部数据\r
+            StringBuffer stringBuffer = new StringBuffer();\r
             stringBuffer.append("recv BP28 name = ").append(Name)\r
                     .append(",appendIndex = ").append(appendIndex)\r
                     .append(",packetCount = ").append(packetCount)\r
@@ -1297,37 +1300,34 @@ public class protocol_jiai {
                     .append(",packetLen = ").append(packetLen)\r
                     .append(",packetDatalen = ").append(packetData.length);\r
 \r
-            log( stringBuffer.toString());\r
-            connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,1)));\r
-            voicePacket.getInstance().appendVoice(Name,appendIndex,packetCount,currentId,packetLen,packetData);\r
-            log("================"+voicePacket.getInstance().toString());\r
-            if (voicePacket.getInstance().isFinished())\r
-            {\r
-\r
-                String dir = Environment.getExternalStorageDirectory()+ "/Android/VoiceCache";\r
-                String amrFilepath=Util.saveFile(voicePacket.getInstance().getVoicePacketBytes(),0,voicePacket.getInstance().getVoicePacketLen(),new File(dir),"receive_"+voicePacket.getInstance().getPacketTime()+".amr");\r
-                ICLogger.i("save Amr file to "+amrFilepath);\r
-                voicePacket.getInstance().clearPacket();\r
-                VoiceContent voiceContent=VoiceContent.placeHolderIn(Content.CONTACT_CATEGORY_GROUP,GROUP_ALL,amrFilepath);\r
+            //输出log\r
+            log(stringBuffer.toString());\r
+            //这里应该是通知后台success\r
+            connection.send(genStringMessage("AP28", AP28(Name, appendIndex, packetCount, currentId, 1)));\r
 \r
+            voicePacket.getInstance().appendVoice(Name, appendIndex, packetCount, currentId, packetLen, packetData);\r
+            log("================" + voicePacket.getInstance().toString());\r
+            if (voicePacket.getInstance().isFinished()) {\r
 \r
-                final Uri uri2 = runtime.getDbHelper().insertMessage( voiceContent);\r
-\r
+                String dir = Environment.getExternalStorageDirectory() + "/Android/VoiceCache";\r
+                String amrFilepath = Util.saveFile(voicePacket.getInstance().getVoicePacketBytes(), 0, voicePacket.getInstance().getVoicePacketLen(), new File(dir), "receive_" + voicePacket.getInstance().getPacketTime() + ".amr");\r
+                ICLogger.i("save Amr file to " + amrFilepath);\r
+                voicePacket.getInstance().clearPacket();\r
+                VoiceContent voiceContent = VoiceContent.placeHolderIn(Content.CONTACT_CATEGORY_GROUP, GROUP_ALL, amrFilepath);\r
+                final Uri uri2 = runtime.getDbHelper().insertMessage(voiceContent);\r
+                log("uri2 == >  " + uri2);\r
                 //回复UI消息,表示已经接收到\r
                 voiceContent.status = 3;\r
                 voiceContent.serverTime = TimeUtil.getSystemTime3();\r
                 voiceContent.preview = String.valueOf(Util.getDuration(voiceContent.content));\r
+                //这里应该是更新数据库,并且让监听这个URI2的内容观察者知道更新\r
                 runtime.getDbHelper().updateMessage(voiceContent, uri2);\r
-\r
-//                runtime.getContextProxy().sendBroadcast(ACTION_IMESSAGE, runtime);\r
-\r
                 connection.DeliverCMDMessageToSystem("NewVoice", amrFilepath);//通知下面线程状态变化\r
             }\r
 \r
-        }else{\r
-            log("handleBP28","format Error");\r
+        } else {\r
+            log("handleBP28", "format Error");\r
 //            connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,0)));\r
-\r
         }\r
 \r
     }\r
@@ -1344,7 +1344,7 @@ public class protocol_jiai {
     }\r
 \r
     //白名单开关(下行协议号:BP84,响应:AP84)\r
-    public static String AP84(String index,int success){\r
+    public static String AP84(String index, int success) {\r
 \r
         //设备响应:      IWAP80,080835,1#\r
         //080835:指令流水号\r
@@ -1355,7 +1355,7 @@ public class protocol_jiai {
                 .append(CMDEND).toString();\r
     }\r
 \r
-    public void handleBP84(String cmd,Connection connection){\r
+    public void handleBP84(String cmd, Connection connection) {\r
 //示例:\r
         //IWBP84,353456789012345,080835,1#\r
         //说明:\r
@@ -1364,21 +1364,21 @@ public class protocol_jiai {
         //353456789012345:IMEI号,设备唯一ID\r
         //080835 :指令流水号\r
         //1: 表示白名单开,0 表示白名单关\r
-        String[] list=cmd.split(CMDSPLIT);\r
+        String[] list = cmd.split(CMDSPLIT);\r
 \r
-        if (list.length==4){\r
-            String index=list[2];\r
-            String whitelist_switch=list[3];\r
-            connection.send(genStringMessage("AP84",AP84(index,1)));\r
+        if (list.length == 4) {\r
+            String index = list[2];\r
+            String whitelist_switch = list[3];\r
+            connection.send(genStringMessage("AP84", AP84(index, 1)));\r
 \r
-            if (whitelist_switch.equals("1")){\r
-                Util.setSystemProperties("persist.sys.whitelist.enable","true");\r
-            }else{\r
-                Util.setSystemProperties("persist.sys.whitelist.enable","false");\r
+            if (whitelist_switch.equals("1")) {\r
+                Util.setSystemProperties("persist.sys.whitelist.enable", "true");\r
+            } else {\r
+                Util.setSystemProperties("persist.sys.whitelist.enable", "false");\r
             }\r
-            ICLogger.i("收到服务器指令:白名单"+(whitelist_switch.equals("1")?"开":"关"));\r
+            ICLogger.i("收到服务器指令:白名单" + (whitelist_switch.equals("1") ? "开" : "关"));\r
 \r
-        }else{\r
+        } else {\r
 \r
             ICLogger.i("BP84 format error!");\r
         }\r
@@ -1386,7 +1386,7 @@ public class protocol_jiai {
     }\r
 \r
     //17.设置心率/血压测量周期(下行协议号:BP86,响应:AP86)\r
-    public static String AP86(String index){\r
+    public static String AP86(String index) {\r
 \r
         //设备响应:      IWAP86, 080835#\r
         //080835:指令流水号\r
@@ -1395,7 +1395,7 @@ public class protocol_jiai {
                 .append(CMDEND).toString();\r
     }\r
 \r
-    public void handleBP86(String cmd,Connection connection,Runtime runtime){\r
+    public void handleBP86(String cmd, Connection connection, Runtime runtime) {\r
 \r
         //示例:\r
         //IWBP86, 353456789012345, 080835,1,720#\r
@@ -1407,27 +1407,27 @@ public class protocol_jiai {
         //1: 表示心率周期;2 :表示血压周期\r
         //720: 表示720分钟\r
 \r
-        String[] list=cmd.split(CMDSPLIT);\r
+        String[] list = cmd.split(CMDSPLIT);\r
 \r
-        if (list.length==5){\r
-            String index=list[2];\r
-            String type=list[3];\r
-            String cycle=list[4];\r
-            connection.send(genStringMessage("AP86",AP86(index)));\r
-            ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟");\r
+        if (list.length == 5) {\r
+            String index = list[2];\r
+            String type = list[3];\r
+            String cycle = list[4];\r
+            connection.send(genStringMessage("AP86", AP86(index)));\r
+            ICLogger.i("收到服务器指令:设置" + (type.equals("1") ? "心率周期 " : "血压周期 ") + cycle + "分钟");\r
 \r
             //发送重置PPGCycle的广播,会在CoreServer里面执行\r
             Intent intent = new Intent();\r
-            intent.putExtra("PPGTestCycle",Integer.parseInt(cycle));\r
-            runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START,intent);\r
-        }else{\r
+            intent.putExtra("PPGTestCycle", Integer.parseInt(cycle));\r
+            runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START, intent);\r
+        } else {\r
             ICLogger.i("BP86 format error!");\r
         }\r
 \r
     }\r
 \r
     //18.18.设置心率/血压阀值(下行协议号:BP89,响应:AP89)\r
-    public static String AP89(String index){\r
+    public static String AP89(String index) {\r
 \r
         //设备响应:      IWAP89, 080835#\r
         //080835:指令流水号\r
@@ -1436,7 +1436,7 @@ public class protocol_jiai {
                 .append(CMDEND).toString();\r
     }\r
 \r
-    public void handleBP89(String cmd,Connection connection){\r
+    public void handleBP89(String cmd, Connection connection) {\r
 \r
         //示例:\r
         //IWBP89, 353456789012345, 080835,50,90,80,90,110,140#\r
@@ -1451,24 +1451,24 @@ public class protocol_jiai {
         //90: 低压阀值,低压高于该阀值上传血压,如果未设置,则留空\r
         //110: 高压阀值,高压低于该阀值上传血压,如果未设置,则留空\r
         //140: 高压阀值,高压高于该阀值上传血压,如果未设置,则留空\r
-        String[] list=cmd.split(CMDSPLIT);\r
-        if (list.length==9){\r
-            String index=list[2];\r
-            String PPGH=list[3];\r
-            String PPGL=list[4];\r
-            String BPH_H=list[5];\r
-            String BPH_L=list[6];\r
-            String BPL_H=list[7];\r
-            String BPL_L=list[8];\r
-            connection.send(genStringMessage("AP89",AP89(index)));\r
-            ICLogger.i("收到服务器指令:心率/血压阀值 "+PPGH+","+PPGL+","+BPH_H+","+BPH_L+","+BPL_H+","+BPL_L);\r
-        }else{\r
+        String[] list = cmd.split(CMDSPLIT);\r
+        if (list.length == 9) {\r
+            String index = list[2];\r
+            String PPGH = list[3];\r
+            String PPGL = list[4];\r
+            String BPH_H = list[5];\r
+            String BPH_L = list[6];\r
+            String BPL_H = list[7];\r
+            String BPL_L = list[8];\r
+            connection.send(genStringMessage("AP89", AP89(index)));\r
+            ICLogger.i("收到服务器指令:心率/血压阀值 " + PPGH + "," + PPGL + "," + BPH_H + "," + BPH_L + "," + BPL_H + "," + BPL_L);\r
+        } else {\r
             ICLogger.i("BP89 format error!");\r
         }\r
 \r
     }\r
 \r
-    public static StringMessage AP93(String index){\r
+    public static StringMessage AP93(String index) {\r
         /***\r
          * 20.发送文字到手环(下行协议号:BP93,响应:AP93)\r
          * 示例:\r
@@ -1486,13 +1486,13 @@ public class protocol_jiai {
          * 080835: 设备响应的时候带上响应流水号\r
          * 说明:   本消息适用所有终端\r
          */\r
-        return genStringMessage("AP93",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP93))\r
+        return genStringMessage("AP93", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP93))\r
                 .append(CMDSPLIT).append(index)\r
                 .append(CMDEND).toString());\r
 \r
     }\r
 \r
-    public void handleBP93(Connection connection,Runtime runtime , String cmd){\r
+    public void handleBP93(Connection connection, Runtime runtime, String cmd) {\r
         /***\r
          * 20.发送文字到手环(下行协议号:BP93,响应:AP93)\r
          * 示例:\r
@@ -1510,30 +1510,30 @@ public class protocol_jiai {
          * 080835: 设备响应的时候带上响应流水号\r
          * 说明:   本消息适用所有终端\r
          */\r
-        String[] cmdlist=cmd.split(",");\r
-        if (cmdlist.length == 7){\r
-            String cmdindex=cmdlist[2];\r
-            String msg_index_no=cmdlist[3];\r
-            String txtmsg=cmdlist[4];\r
-            String play_time=cmdlist[5];\r
-            String vib_time=cmdlist[6];\r
-            ICLogger.i("收到服务器文本 "+txtmsg+" 序号 "+msg_index_no+" , 播放 "+play_time+" 次,震动 "+vib_time+" 次!");\r
-            txtmsg=Util.UrlGB2312ToUTF8(txtmsg);\r
-            StringMessage msg=AP93(cmdindex);\r
+        String[] cmdlist = cmd.split(",");\r
+        if (cmdlist.length == 7) {\r
+            String cmdindex = cmdlist[2];\r
+            String msg_index_no = cmdlist[3];\r
+            String txtmsg = cmdlist[4];\r
+            String play_time = cmdlist[5];\r
+            String vib_time = cmdlist[6];\r
+            ICLogger.i("收到服务器文本 " + txtmsg + " 序号 " + msg_index_no + " , 播放 " + play_time + " 次,震动 " + vib_time + " 次!");\r
+            txtmsg = Util.UrlGB2312ToUTF8(txtmsg);\r
+            StringMessage msg = AP93(cmdindex);\r
             //设定当前工作模式及循环频率\r
             connection.send(msg);\r
-            runtime.PushtxtMsg_srv_index=msg_index_no;//给回复AP94用\r
-            ICLogger.i("received Txt Msg "+txtmsg);\r
-            runtime.getContextProxy().sendMsgBroadcast(txtmsg,0);\r
+            runtime.PushtxtMsg_srv_index = msg_index_no;//给回复AP94用\r
+            ICLogger.i("received Txt Msg " + txtmsg);\r
+            runtime.getContextProxy().sendMsgBroadcast(txtmsg, 0);\r
             runtime.getContextProxy().saveMstToSMSDB(txtmsg);\r
 \r
-        }else{\r
+        } else {\r
             ICLogger.i("BP40 format error!");\r
         }\r
 \r
     }\r
 \r
-    public static StringMessage AP94( ){\r
+    public static StringMessage AP94() {\r
         /***\r
          * 15确认已读文字(上行协议号:AP94,响应:BP94)\r
          * 示例:\r
@@ -1549,80 +1549,80 @@ public class protocol_jiai {
          */\r
 \r
         //在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。\r
-        return genStringMessage(cmdMap.get(CMD_TYPE.AP94),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP94))\r
+        return genStringMessage(cmdMap.get(CMD_TYPE.AP94), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP94))\r
                 .append(CMDSPLIT).append(Runtime.PushtxtMsg_srv_index)\r
                 .append(CMDSPLIT).append("1")\r
                 .append(CMDEND).toString());\r
 \r
     }\r
 \r
-    public void handleBP94(){\r
+    public void handleBP94() {\r
 \r
     }\r
 \r
     public boolean handleCmd(CMD_TYPE type, String cmd) {\r
 \r
         //普通非二进制命令用此函数处理\r
-        boolean ret=true;\r
-        ICLogger.i("handleCmd "+type.name() + " strLen="+cmd.length());\r
-        if (Config.LOG_TOFILE)ICLogger.logToFile("APILog", " recv " + cmd);\r
-        switch (type){\r
+        boolean ret = true;\r
+        ICLogger.i("handleCmd " + type.name() + " strLen=" + cmd.length());\r
+        if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv " + cmd);\r
+        switch (type) {\r
             case BP00: //登录包\r
-                handleBP00(mRuntime,cmd);\r
+                handleBP00(mRuntime, cmd);\r
                 ICLogger.i("服务器收到登录包AP00");\r
-                mConnection.DeliverCMDMessageToSystem("login",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("login", cmd);//通知下面线程状态变化\r
                 break;\r
             case BP01: //gps定位包\r
                 handleBP01(cmd);\r
                 ICLogger.i("服务器收到定位AP01");\r
-                mConnection.DeliverCMDMessageToSystem("AP01",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("AP01", cmd);//通知下面线程状态变化\r
                 break;\r
             case BP02:// wifi定位包\r
                 handleBP02(cmd);\r
                 ICLogger.i("服务器收到定位AP02");\r
-                mConnection.DeliverCMDMessageToSystem("AP02",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("AP02", cmd);//通知下面线程状态变化\r
                 break;\r
             case BP03: //心跳包\r
                 handleBP03(cmd);\r
                 ICLogger.i("服务器收到心跳包AP03");\r
-                mConnection.DeliverCMDMessageToSystem("heartbeat",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("heartbeat", cmd);//通知下面线程状态变化\r
                 break;\r
 \r
             case BP07:\r
                 //收到发送的语音包\r
-                handleBP07(cmd,mConnection);\r
+                handleBP07(cmd, mConnection);\r
                 break;\r
             case BP10:\r
                 //报警包\r
-                mConnection.DeliverCMDMessageToSystem("AP10",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("AP10", cmd);//通知下面线程状态变化\r
                 break;\r
 \r
             case BPTM:\r
                 //校时命令\r
                 handleBPTM(cmd);\r
                 ICLogger.i("服务器收到校时命令APTM");\r
-                mConnection.DeliverCMDMessageToSystem("APTM",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("APTM", cmd);//通知下面线程状态变化\r
                 break;\r
             case BP85://设置闹钟\r
-                handleBP85(cmd,mConnection,mRuntime);\r
+                handleBP85(cmd, mConnection, mRuntime);\r
                 ICLogger.i("收到服务器设置闹钟命令BP85");\r
-                mConnection.DeliverCMDMessageToSystem("AP85",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("AP85", cmd);//通知下面线程状态变化\r
                 break;\r
             case BP33:\r
                 //设置工作模式\r
-                handleBP33(mConnection,mRuntime,cmd);\r
-                mConnection.DeliverCMDMessageToSystem("setWorkMod",cmd);//通知下面线程状态变化\r
+                handleBP33(mConnection, mRuntime, cmd);\r
+                mConnection.DeliverCMDMessageToSystem("setWorkMod", cmd);//通知下面线程状态变化\r
 \r
                 break;\r
             case BP34:\r
                 //设置工作模式\r
-                handleBP34(mConnection,mRuntime,cmd);\r
-                mConnection.DeliverCMDMessageToSystem("setWorkMod",cmd);//通知下面线程状态变化\r
+                handleBP34(mConnection, mRuntime, cmd);\r
+                mConnection.DeliverCMDMessageToSystem("setWorkMod", cmd);//通知下面线程状态变化\r
                 break;\r
             case BP16:\r
                 //立即定位指令(长链接有效)\r
-                handleBP16(mConnection,mRuntime,cmd);\r
-                mConnection.DeliverCMDMessageToSystem("StartLocate",cmd);//通知下面线程状态变化\r
+                handleBP16(mConnection, mRuntime, cmd);\r
+                mConnection.DeliverCMDMessageToSystem("StartLocate", cmd);//通知下面线程状态变化\r
                 break;\r
 \r
 //                            case BP05: //L02服务器不适用\r
@@ -1632,69 +1632,69 @@ public class protocol_jiai {
 \r
             case BP12:\r
                 //收到设置SOS号码\r
-                handleBP12(mConnection,cmd,mRuntime);\r
+                handleBP12(mConnection, cmd, mRuntime);\r
                 ICLogger.i("收到服务器设置SOS号码命令BP12");\r
                 break;\r
             case BP14:\r
                 //收到设置白名单号码\r
-                handleBP14(mConnection,cmd,mRuntime);\r
+                handleBP14(mConnection, cmd, mRuntime);\r
                 ICLogger.i("收到服务器设置白名单号码命令BP14");\r
                 break;\r
             case BP15:\r
-                handleBP15(cmd,mConnection,mRuntime);\r
+                handleBP15(cmd, mConnection, mRuntime);\r
                 ICLogger.i("收到服务器设置定位命令BP15");\r
                 break;\r
             case BP17:\r
                 //收到恢复出厂设置\r
-                handleBP17(mConnection,cmd);\r
+                handleBP17(mConnection, cmd);\r
                 ICLogger.i("收到服务器恢复出厂设置命令BP17");\r
-                mConnection.DeliverCMDMessageToSystem("FactoryReset",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("FactoryReset", cmd);//通知下面线程状态变化\r
                 break;\r
 \r
             case BP18:\r
                 //收到重启\r
-                handleBP18(mConnection,cmd);\r
+                handleBP18(mConnection, cmd);\r
                 ICLogger.i("收到服务器重启命令BP18");\r
-                mConnection.DeliverCMDMessageToSystem("Reboot",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("Reboot", cmd);//通知下面线程状态变化\r
                 break;\r
 \r
             case BP31:\r
                 //收到关机\r
-                handleBP31(mConnection,cmd);\r
+                handleBP31(mConnection, cmd);\r
                 ICLogger.i("收到服务器关机命令BP31");\r
-                mConnection.DeliverCMDMessageToSystem("poweroff",cmd);//通知下面线程状态变化\r
+                mConnection.DeliverCMDMessageToSystem("poweroff", cmd);//通知下面线程状态变化\r
                 break;\r
 \r
             case BPXL:\r
-                handleBPXL(cmd,mConnection);\r
+                handleBPXL(cmd, mConnection);\r
                 ICLogger.i("收到服务器心率检测命令");\r
                 HeartRateManager.triggerPPGtest();\r
                 break;\r
             case BPXY:\r
-                handleBPXY(cmd,mConnection);\r
+                handleBPXY(cmd, mConnection);\r
                 ICLogger.i("收到服务器血压检测命令");\r
                 HeartRateManager.triggerPPGtest();\r
                 break;\r
             case BPJZ:\r
-                handleBPJZ(cmd,mConnection,mRuntime);\r
+                handleBPJZ(cmd, mConnection, mRuntime);\r
                 ICLogger.i("收到服务器血压校准命令");\r
                 break;\r
             case BPHT:\r
                 ICLogger.i("服务器收到上传的心率血压");\r
                 break;\r
             case BP84:\r
-                handleBP84(cmd,mConnection);\r
+                handleBP84(cmd, mConnection);\r
                 ICLogger.i("收到服务器白名单命令");\r
                 break;\r
 \r
             case BP86:\r
                 //心率血压周期设置\r
-                handleBP86(cmd,mConnection,mRuntime);\r
+                handleBP86(cmd, mConnection, mRuntime);\r
 //                                ICLogger.i("");\r
                 break;\r
             case BP89:\r
                 //心率/血压阀值\r
-                handleBP89(cmd,mConnection);\r
+                handleBP89(cmd, mConnection);\r
                 break;\r
 \r
             case BP94:\r
@@ -1702,7 +1702,7 @@ public class protocol_jiai {
                 break;\r
             case BP93:\r
                 //服务器下发文版\r
-                handleBP93(mConnection,mRuntime,cmd);\r
+                handleBP93(mConnection, mRuntime, cmd);\r
                 break;\r
         }\r
 \r
@@ -1715,13 +1715,13 @@ public class protocol_jiai {
 \r
         //只有需要传递二级制数据的才需要这个函数,目前只有BP28需要\r
 \r
-        boolean ret=true;\r
-        ICLogger.i("handleCmd "+type.name() + " "+cmd+" bytelen="+bytes.length );\r
-        if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv " +new String(bytes));\r
+        boolean ret = true;\r
+        Log.i(TAG, "handleCmd " + type.name() + " " + cmd + " bytelen=" + bytes.length);\r
+//        if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv ");\r
         switch (type) {\r
             case BP28:\r
-                handleBP28(mConnection,cmd, mRuntime,bytes);\r
-                ICLogger.i("收到服务器语音BP28");\r
+                handleBP28(mConnection, cmd, mRuntime, bytes);\r
+                Log.i(TAG, "收到服务器语音BP28");\r
                 mConnection.DeliverCMDMessageToSystem("BP28", "");//通知下面线程状态变化\r
                 break;\r
         }\r
index bed8bc1..408a5cc 100644 (file)
@@ -4,5 +4,5 @@
 # Location of the SDK. This is only used by Gradle.\r
 # For customization when using a Version Control System, please read the\r
 # header note.\r
-#Wed Aug 12 10:23:43 CST 2020\r
-sdk.dir=C\:\\Users\\incar\\AppData\\Local\\Android\\Sdk\r
+#Fri Dec 04 12:11:12 CST 2020\r
+sdk.dir=D\:\\Android\\Sdk\r