\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
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
\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
// 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
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
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
// 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
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
\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
\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
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
// 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
// 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
}\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
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
// 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
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
}\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
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
// 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
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
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
// 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
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
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
\r
\r
//获取定位时间\r
- needLocateInAfterHeartBeat=true;\r
+ needLocateInAfterHeartBeat = true;\r
setLocationAlarm(runtime.getLocationInstance().getWorkingMod());\r
\r
//设置温度测量间隔时间\r
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
public void run() {\r
AudioService.getInstance().stop();\r
}\r
- },5000);\r
+ }, 5000);\r
VibrateUtil.getInstance(runtime.getContextProxy().context).VibrateOnOnce(true);\r
\r
try {\r
}\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
}\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
// 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
}\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
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
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
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
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
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
}\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
\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
\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
}\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
\r
}\r
\r
- public void disconnect_server(){\r
+ public void disconnect_server() {\r
this.connection.close();\r
}\r
\r
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
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
* 负责发送除了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
// //如果信号不好,把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
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
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
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
\r
return "";\r
}\r
- }else{\r
+ } else {\r
return "";\r
}\r
\r
\r
return "";\r
}\r
+\r
private void log(String msg) {\r
ICLogger.log(TAG, msg);\r
}\r
}\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
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
}\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
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
cmdbuf = new StringBuffer().append(last_inCompletecmd);\r
return ret;\r
}\r
+\r
public int getBP28Amrlen(String cmd) {\r
\r
String Name;\r
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
.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
}\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
// 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
* 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
// 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
// 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
}\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
\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
//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
\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
//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
}\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
//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
//关机\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
}\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
.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
* 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
// 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
//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
.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
.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
}\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
// }\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
//如果设备回复确认数据包接收失败状态,则重复发送上一个数据包\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
}\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
// 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
}\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
}\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
// 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
\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
}\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
.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
\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
// 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
\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
}\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
}\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
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
.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
}\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
.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
//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
}\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
.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
//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
.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
//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
* 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
* 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
*/\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
\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
break;\r
case BP93:\r
//服务器下发文版\r
- handleBP93(mConnection,mRuntime,cmd);\r
+ handleBP93(mConnection, mRuntime, cmd);\r
break;\r
}\r
\r
\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
# 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