import android.app.Notification;
import android.app.PendingIntent;
import android.app.Service;
-import android.content.IClipboard;
+import android.content.BroadcastReceiver;
+import android.content.Context;
import android.content.Intent;
+import android.content.IntentFilter;
import android.media.AudioManager;
-import android.media.MediaRouter;
import android.os.Handler;
+import android.os.HandlerThread;
import android.os.IBinder;
-
import android.os.Message;
import android.os.Messenger;
import android.os.PowerManager;
import android.os.SystemClock;
import android.widget.Toast;
-import com.enqualcomm.support.adapter.BTHelper;
+import com.enqualcomm.support.adapter.LBSHelper;
import com.enqualcomm.support.bean.Contact;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
-import com.enqualcomm.support.bean.ICLocation;
+import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.SleepInfo;
import com.enqualcomm.support.bean.SleepRecord;
-import com.enqualcomm.support.service.AntiMonitorService;
-import com.enqualcomm.support.utils.CellInfoUtil;
-import com.enqualcomm.support.utils.Connection;
-import com.enqualcomm.support.utils.DeviceInfoUtil;
-import com.enqualcomm.support.utils.ICHttpUtil;
-import com.enqualcomm.support.utils.LedUtil;
-import com.enqualcomm.support.utils.StorageUtils;
-import com.enqualcomm.support.utils.TemperatureUtil;
-import com.enqualcomm.support.utils.TimeUtil;
-import com.enqualcomm.support.utils.VibrateUtil;
-import com.enqualcomm.support.utils.WakeLockUtil;
-import com.enqualcomm.support.utils.mqttConnection;
-import com.ic.jni.ICJniUtils;
-import com.enqualcomm.support.adapter.LBSHelper;
-import com.ic.protocols.protocolAPIHelper;
-import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.heartRateStatus;
+import com.enqualcomm.support.service.AntiMonitorService;
import com.enqualcomm.support.service.CheckSIM;
import com.enqualcomm.support.service.Deliver;
import com.enqualcomm.support.service.HeartRateManager;
import com.enqualcomm.support.utils.AlarmHelper;
import com.enqualcomm.support.utils.AlarmWakeUp;
import com.enqualcomm.support.utils.BatteryUtil;
+import com.enqualcomm.support.utils.CellInfoUtil;
+import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.ConnectionListener;
import com.enqualcomm.support.utils.ContextProxy;
import com.enqualcomm.support.utils.DBHelper;
+import com.enqualcomm.support.utils.DeviceInfoUtil;
import com.enqualcomm.support.utils.FileOutputUtil;
import com.enqualcomm.support.utils.ICLogger;
+import com.enqualcomm.support.utils.LedUtil;
import com.enqualcomm.support.utils.NettyConnection;
import com.enqualcomm.support.utils.SharPreferenceUtil;
import com.enqualcomm.support.utils.SimSignalUtil;
+import com.enqualcomm.support.utils.TemperatureUtil;
+import com.enqualcomm.support.utils.TimeUtil;
import com.enqualcomm.support.utils.Util;
+import com.enqualcomm.support.utils.VibrateUtil;
+import com.enqualcomm.support.utils.WakeLockUtil;
+import com.enqualcomm.support.utils.mqttConnection;
+import com.ic.jni.ICJniUtils;
+import com.ic.protocols.protocolAPIHelper;
import java.lang.ref.WeakReference;
-import chestnut.ui.Toastc;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.IntentFilter;
-
import java.util.ArrayList;
import java.util.Random;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import chestnut.ui.Toastc;
+
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
import static com.enqualcomm.support.Constants.ACTION_ALARM_ADD_DATAPOINTS;
import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.ACTION_ALARM_BLE_SCAN;
-import static com.enqualcomm.support.Constants.ACTION_ALARM_CHECK_ANTI;
import static com.enqualcomm.support.Constants.ACTION_CHECK_ANTIOFF_EVENT;
import static com.enqualcomm.support.Constants.ACTION_EQC_ALARM;
import static com.enqualcomm.support.Constants.ACTION_HEATR_RATE_START;
import static com.enqualcomm.support.Constants.ACTION_LOCAL_SOS_ACTION;
import static com.enqualcomm.support.Constants.ACTION_LOCATION_ALARM;
-import static com.enqualcomm.support.Constants.ACTION_PRACTICE_REPORT_ALARM;
import static com.enqualcomm.support.Constants.ACTION_QUERY_WEATHER;
import static com.enqualcomm.support.Constants.ACTION_SEND_EMEGENCY_LOCATION_START;
import static com.enqualcomm.support.Constants.ACTION_SEND_EMEGENCY_LOCATION_STOP;
import static com.enqualcomm.support.Constants.HEART_ALARM;
import static com.enqualcomm.support.Constants.KEY_SAVE_STEP_COUNT;
import static com.enqualcomm.support.Constants.KEY_STEP_COUNT;
-import static com.enqualcomm.support.Constants.KEY_TEMP_BODY;
-import static com.enqualcomm.support.Constants.KEY_TEMP_WRIST;
import static com.enqualcomm.support.Constants.STEP_COUNT_ALARM_ACTION;
import static com.enqualcomm.support.Constants.TEMP_ALARM;
-import static com.enqualcomm.support.bean.ICLocation.*;
-import static com.ic.protocols.protocolAPIHelper.getTemperatureMSG;
+import static com.enqualcomm.support.bean.ICLocation.CUSTOM_MOD;
+import static com.enqualcomm.support.bean.ICLocation.CUSTOM_MOD8_GPS;
+import static com.enqualcomm.support.bean.ICLocation.CUSTOM_MOD8_WIFI;
+import static com.enqualcomm.support.bean.ICLocation.EMERGNECY_MOD;
+import static com.enqualcomm.support.bean.ICLocation.LOWPOWER_MOD;
+import static com.enqualcomm.support.bean.ICLocation.NORMAL_MOD;
+import static com.enqualcomm.support.bean.ICLocation.REALTIME_MOD;
public class CoreService extends Service {
private Toastc toast = null;
- private static CoreService mProtocolServer=null;
- private static LBSHelper lbshelper=null;
+ private static CoreService mProtocolServer = null;
+ private static LBSHelper lbshelper = null;
public static final String ACTION_ALARM = "com.enqualcomm.support.ACTION_ALARM";
- private static final int GRAY_SERVICE_ID =android.os.Process.myPid();
+ private static final int GRAY_SERVICE_ID = android.os.Process.myPid();
- private static final String MY_WAKE_LOCKTAG =CoreService.class.getSimpleName();
+ private static final String MY_WAKE_LOCKTAG = CoreService.class.getSimpleName();
public static int alarmCycle = 5;
public static final int interval = 60000;
- public static boolean needLocateInAfterHeartBeat=false;
+ public static boolean needLocateInAfterHeartBeat = false;
private static int is_allowed_in_sleep_mode = 1;
private static boolean is_in_sleep_mode = false;
private static boolean is_wifi_network_ok = false;
// SPRD: add outdoorMode
public static final int RINGER_MODE_OUTDOOR = 3;
+ public static Handler mHandler = null;
+ // public static Handler mHandler=new Handler();
+ private static ICSmsManager smsManager = null;
- public static Handler mHandler=new Handler(EventLooperHandlerThread.makeLooper(MY_WAKE_LOCKTAG));
-// public static Handler mHandler=new Handler();
- private static ICSmsManager smsManager=null;
- public String getServerAlive(){
- return DeviceInfoUtil.getDeviceInfo(runtime);
+ public String getServerAlive() {
+ return DeviceInfoUtil.getDeviceInfo(runtime);
}
+
private BroadcastReceiver AtCallbackBroadcastReceiver = new BroadcastReceiver() {
public void onReceive(Context param1Context, Intent param1Intent) {
if (param1Intent.getAction().equals("com.eqc.intent.action.callback.at")) {
stringBuilder1.append(Integer.valueOf(str, 16));
stringBuilder1.append(",CELLID=");
stringBuilder1.append(Integer.valueOf(str1, 16));
- if (Config.LOG_TOFILE) ICLogger.logToFile( "LBS", stringBuilder1.toString());
+ if (Config.LOG_TOFILE) ICLogger.logToFile("LBS", stringBuilder1.toString());
}
}
}
StringBuilder stringBuilder2 = new StringBuilder();
stringBuilder2.append("broadcastReceiver alarmCycle action==");
stringBuilder2.append(param1Intent.getAction());
- if (Config.LOG_TOFILE) ICLogger.logToFile( "alarmCycle", stringBuilder2.toString());
+ if (Config.LOG_TOFILE) ICLogger.logToFile("alarmCycle", stringBuilder2.toString());
StringBuilder stringBuilder1 = new StringBuilder();
stringBuilder1.append("时间变化");
- stringBuilder1.append(param1Intent.getAction()+stringBuilder2.toString());
+ stringBuilder1.append(param1Intent.getAction() + stringBuilder2.toString());
ICLogger.i(stringBuilder1.toString());
//只有需要确定绝对时间点启动的Alarm需要重置,相对时间点的Alarm不需要重置。防止永远不能正常登陆。
// setHeartAlarm();
// setHeartRateDetectAlarm(runtime.getPpgTestCycle());
setWeatherAlarm();
- runtime.getContextProxy().sendBroadcast(ACTION_ALARM_ALARM_CHANGE,runtime); //更新Alarm
- // setLocationAlarm(runtime.getLocationInstance().getWorkingMod());
+ runtime.getContextProxy().sendBroadcast(ACTION_ALARM_ALARM_CHANGE, runtime); //更新Alarm
+ // setLocationAlarm(runtime.getLocationInstance().getWorkingMod());
if (cmcm_call_eiot_into_powersave_mode() == 0)
AlarmWakeUp.isNeedWakeUpAlarm(runtime);
}
stringBuilder2.append(param1Intent.getAction());
ICLogger.i(stringBuilder2.toString());
- if (ACTION_SEND_EMEGENCY_LOCATION_START.equals(param1Intent.getAction())){
+ if (ACTION_SEND_EMEGENCY_LOCATION_START.equals(param1Intent.getAction())) {
runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD);
//runtime.setPpgTestCycle(1);
setLocationAlarm(runtime.getLocationInstance().getWorkingMod());
setEmegencyLocationSTOPAlarm(5);
- }else if (ACTION_LOCAL_SOS_ACTION.endsWith(param1Intent.getAction())){
+ } else if (ACTION_LOCAL_SOS_ACTION.endsWith(param1Intent.getAction())) {
VibrateUtil.getInstance(runtime.getContextProxy().context).VibrateOn(true);
// if( param1Intent.getIntExtra("type", 1) == 1) {
- boolean needHRSTestOnSOS = Util.getSystemProperties("persist.sys.needHRSOnSOS","false").equals("true");
- if(needHRSTestOnSOS) {
+ boolean needHRSTestOnSOS = Util.getSystemProperties("persist.sys.needHRSOnSOS", "false").equals("true");
+ if (needHRSTestOnSOS) {
//触发一次心率检测
setHeartRateDetectAlarm(1);
}
- runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS);
- //trigger AP10 报警定位
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_SOS);
+ //trigger AP10 报警定位
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- //开启紧急定位模式,GPS 优先1分钟一次定位,持续5分钟
- runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD);
- setLocationAlarm(runtime.getLocationInstance().getWorkingMod());
+ //开启紧急定位模式,GPS 优先1分钟一次定位,持续5分钟
+ runtime.getLocationInstance().setWorkingMod(EMERGNECY_MOD);
+ setLocationAlarm(runtime.getLocationInstance().getWorkingMod());
- //SOS模式,心率测试1分钟一次,持续5分钟
- if(needHRSTestOnSOS) {
- //只触发一次心率检测
- setHeartRateDetectAlarm(1);
- }
- //设置5分钟后结束紧急定位模式
- setEmegencyLocationSTOPAlarm(5);
+ //SOS模式,心率测试1分钟一次,持续5分钟
+ if (needHRSTestOnSOS) {
+ //只触发一次心率检测
+ setHeartRateDetectAlarm(1);
+ }
+ //设置5分钟后结束紧急定位模式
+ setEmegencyLocationSTOPAlarm(5);
- if(Config.SOSNoNeedDial==false) {
- //50ms后开始拨打电话
- mHandler.postDelayed(mTriggerSOSCALLThread,500);
- }
- }else if (ACTION_QUERY_WEATHER.equals(param1Intent.getAction())) {
+ if (Config.SOSNoNeedDial == false) {
+ //50ms后开始拨打电话
+ mHandler.postDelayed(mTriggerSOSCALLThread, 500);
+ }
+ } else if (ACTION_QUERY_WEATHER.equals(param1Intent.getAction())) {
ICLogger.i("ACTION_QUERY_WEATHER ");
connection.send(protocolAPIHelper.getWeatherMSG(runtime));
- }
+ }
}
};
- private TriggerSOSCALLThread mTriggerSOSCALLThread=new TriggerSOSCALLThread();
+ private TriggerSOSCALLThread mTriggerSOSCALLThread = new TriggerSOSCALLThread();
- private class TriggerSOSCALLThread implements Runnable{
+ private class TriggerSOSCALLThread implements Runnable {
@Override
public void run() {
trigger_SOS_Call();
}
}
- private void trigger_SOS_Call(){
+
+ private void trigger_SOS_Call() {
try {
Intent intent = new Intent("com.eqc.shutdown_sos");
- intent.putExtra("type",1);
+ intent.putExtra("type", 1);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
}
}
- private Runnable mupdatePracticeData=new Runnable(){
+
+ private Runnable mupdatePracticeData = new Runnable() {
@Override
public void run() {
//ICHttpUtil.uploadData(Runtime.healthInfo.getBufferDataStr(),runtime,TimeUtil.getSystemTime2(),null);
private BroadcastReceiver broadcastPracticeCMDReceiver = new BroadcastReceiver() {
public void onReceive(Context param1Context, Intent param1Intent) {
- if(param1Intent.getAction().equals(Constants.ACTION_START_PRACTISE))
- {
- int cmd=param1Intent.getIntExtra(Constants.KeyPractice,0);
- if (cmd==1){
+ if (param1Intent.getAction().equals(Constants.ACTION_START_PRACTISE)) {
+ int cmd = param1Intent.getIntExtra(Constants.KeyPractice, 0);
+ if (cmd == 1) {
//开始自由锻炼
- Runtime.practising=true;
- Util.setSystemProperties( Config.KeyPractiseState,"true");
+ Runtime.practising = true;
+ Util.setSystemProperties(Config.KeyPractiseState, "true");
Runtime.healthInfo.reset();
Runtime.healthInfo.resetBuffer();
setPracticeAlarm();
- }else{
+ } else {
//停止自由锻炼,恢复正常
- Runtime.practising=false;
- Util.setSystemProperties( Config.KeyPractiseState,"false");
+ Runtime.practising = false;
+ Util.setSystemProperties(Config.KeyPractiseState, "false");
HeartRateManager.stopPPGtest();
//最后检测是否还有数据需要发送
- if(Runtime.healthInfo.check_info_item_finished()){
+ if (Runtime.healthInfo.check_info_item_finished()) {
Runtime.healthInfo.appendBuffer(Runtime.healthInfo.getHealthInfoString());
Runtime.healthInfo.reset();
- }
- if(Runtime.healthInfo.getInfoCount()>=0){
+ }
+ if (Runtime.healthInfo.getInfoCount() >= 0) {
//超过30次发送数据给服务器
- ICLogger.i("自由锻炼结束,发送数据给服务器 "+Runtime.healthInfo.getBufferData().length);
+ ICLogger.i("自由锻炼结束,发送数据给服务器 " + Runtime.healthInfo.getBufferData().length);
mHandler.post(mupdatePracticeData);
}
private static class ServerHandler implements ConnectionListener {
private final WeakReference<CoreService> mReference;
- ServerHandler(CoreService param1CoreService) { this.mReference = new WeakReference(param1CoreService); }
+ ServerHandler(CoreService param1CoreService) {
+ this.mReference = new WeakReference(param1CoreService);
+ }
@Override
public void onConnectionClose(String errorName) {
- CoreService coreService = (CoreService)this.mReference.get();
+ CoreService coreService = (CoreService) this.mReference.get();
if (coreService == null)
return;
- ICLogger.i("onConnectionClose++ retry to connect again! Close Error "+errorName);
- coreService.connectionServiceChain.processConnectionClose(coreService.connection, coreService.runtime,errorName);
+ ICLogger.i("onConnectionClose++ retry to connect again! Close Error " + errorName);
+ coreService.connectionServiceChain.processConnectionClose(coreService.connection, coreService.runtime, errorName);
}
+
@Override
public void onConnectionOpen() {
- CoreService coreService = (CoreService)this.mReference.get();
+ CoreService coreService = (CoreService) this.mReference.get();
if (coreService == null)
return;
coreService.connectionServiceChain.processConnectionOpen(coreService.connection, coreService.runtime);
public void onReceive(StringMessage param1StringMessage) {
- CoreService coreService = (CoreService)this.mReference.get();
- ICLogger.i("onReceive " +param1StringMessage.cmd() +" coreService " + coreService );
+ CoreService coreService = (CoreService) this.mReference.get();
+ ICLogger.i("onReceive " + param1StringMessage.cmd() + " coreService " + coreService);
if (coreService == null)
return;
coreService.connectionServiceChain.processServerResponse(param1StringMessage, coreService.connection, coreService.runtime);
coreService.locationClient.onReceive(param1StringMessage);
}
}
+
Connection connection = null;
AbstractConnectionService connectionServiceChain;
//为了保证唤醒时各个状态及时更新到服务器,发送一个同步心跳包,这样用户体验更好
CoreService.this.locationClient.updateStepCount();
- mHandler.postDelayed(mRetryConnectSrvThread,500);
+ mHandler.postDelayed(mRetryConnectSrvThread, 500);
if (CoreService.is_wifi_network_ok) {
// if (!Util.isWifiIsOpen(runtime.getContextProxy().context,runtime))
// Util.turnOnWifiForConnect(runtime.getContextProxy().context, runtime);
}
- } else if ("android.intent.action.SCREEN_OFF".equals(intent.getAction()) && Util.isWifiIsOpen(runtime.getContextProxy().context,runtime)) {
- // CoreService.is_wifi_network_ok = true;
+ } else if ("android.intent.action.SCREEN_OFF".equals(intent.getAction()) && Util.isWifiIsOpen(runtime.getContextProxy().context, runtime)) {
+ // CoreService.is_wifi_network_ok = true;
if (!runtime.isNoTurnOffWifiOnScreenOff()) {
//不关闭wifi when ScreenOff
ICLogger.i("turnOffWifiForConnect");
// if (Util.isWifiIsOpen(runtime.getContextProxy().context,runtime))
// Util.turnOffWifiForSleep(runtime.getContextProxy().context, runtime);
}
- }else if (intent.getAction().equals("android.media.VOLUME_CHANGED_ACTION")) {
+ } else if (intent.getAction().equals("android.media.VOLUME_CHANGED_ACTION")) {
int streamType = intent.getIntExtra("android.media.EXTRA_VOLUME_STREAM_TYPE", -1);
- ICLogger.i("Volume changed stream type "+streamType);
+ ICLogger.i("Volume changed stream type " + streamType);
int newVolume = intent.getIntExtra("android.media.EXTRA_VOLUME_STREAM_VALUE", 0);
int oldVolume = intent.getIntExtra("android.media.EXTRA_PREV_VOLUME_STREAM_VALUE", 0);
- boolean isSilence = SharPreferenceUtil.getPrefBoolean(context, "KEY_ISSILENCE", false);
+ boolean isSilence = SharPreferenceUtil.getPrefBoolean(context, "KEY_ISSILENCE", false);
if (newVolume != oldVolume && !isSilence) {
- ICLogger.i("Volume changed old "+oldVolume+" new "+newVolume);
- Config.setMasterVolume(context,newVolume);
+ ICLogger.i("Volume changed old " + oldVolume + " new " + newVolume);
+ Config.setMasterVolume(context, newVolume);
}
}
}
};
- private Runnable mRetryConnectSrvThread=new Runnable(){
+ private Runnable mRetryConnectSrvThread = new Runnable() {
@Override
public void run() {
- if (connection.isServerConnected()&& runtime.isServerProtocolConnected()) {
+ if (connection.isServerConnected() && runtime.isServerProtocolConnected()) {
mKeepAlive.onHeartAlarm(connection, runtime);
- }else{
+ } else {
ICLogger.i("mRetryConnectSrvThread 发送心跳包时,如果发现服务器没有响应,或者socket连接,则重新尝试连接服务器!");
connection.disconnectServer();
startConnectionRetryTimer();
// Initialize initialize = new Initialize();
CheckSIM checkSIM = new CheckSIM();
this.mKeepAlive = new KeepAlive();
- this.mDeliver = new Deliver(this.connection,this.runtime);
+ this.mDeliver = new Deliver(this.connection, this.runtime);
// initialize.setNext(checkSIM);
checkSIM.setNext(this.mKeepAlive);
this.mKeepAlive.setNext(this.mDeliver);
SilentManager silentManager;
+
private AbstractInvokeHandlerService getInvokeHandlerServiceChain() {
ICLogger.i("getInvokeHandlerServiceChain");
SendChatMessage sendChatMessage = new SendChatMessage();
- HeartRateManager heartRateManager= new HeartRateManager(this.runtime,this.connection);
+ HeartRateManager heartRateManager = new HeartRateManager(this.runtime, this.connection);
antiservice = new AntiMonitorService();
silentManager = SilentManager.getInstance();// new SilentManager();
sendChatMessage.setNext(heartRateManager);
return sendChatMessage;
}
- private void resetStepCount(){
- if ( ICJniUtils.isPedometerEnabled() == 0)ICJniUtils.enablePedometer();
+ private void resetStepCount() {
+ if (ICJniUtils.isPedometerEnabled() == 0) ICJniUtils.enablePedometer();
ICJniUtils.resetStepCount();
SharPreferenceUtil.setPrefInt(this, KEY_STEP_COUNT, 0);
SharPreferenceUtil.setPrefInt(this, KEY_SAVE_STEP_COUNT, 0);
- ICLogger.i("Reset StepCount , "+ICJniUtils.getStepCount());
+ ICLogger.i("Reset StepCount , " + ICJniUtils.getStepCount());
this.runtime.setSaveStepCount(0);
this.runtime.setTotalStepCount(0);
}
+
private void loadStepCount() {
int i = SharPreferenceUtil.getPrefInt(this, KEY_STEP_COUNT, 0);
int j = SharPreferenceUtil.getPrefInt(this, KEY_SAVE_STEP_COUNT, 0);
- if ( ICJniUtils.isPedometerEnabled() == 0)ICJniUtils.enablePedometer();
+ if (ICJniUtils.isPedometerEnabled() == 0) ICJniUtils.enablePedometer();
//ICJniUtils.recoverStepCount();
- if (ICJniUtils.getStepCount()>i){
- i=ICJniUtils.getStepCount();
+ if (ICJniUtils.getStepCount() > i) {
+ i = ICJniUtils.getStepCount();
}
this.runtime.setSaveStepCount(j);
this.runtime.setTotalStepCount(i);
runtime.setLastStepCountForBT(runtime.getTotalStepCount());
runtime.setLastStepCount(runtime.getTotalStepCount());
}
- public void saveStepCount(){
+
+ public void saveStepCount() {
int i = runtime.getTotalStepCount();
int j = runtime.getSaveStepCount();
SharPreferenceUtil.setPrefInt(this, KEY_STEP_COUNT, i);
SharPreferenceUtil.setPrefInt(this, KEY_SAVE_STEP_COUNT, j);
//ICJniUtils.saveStepCount();
}
+
private void setCleanStepCountAlarm() {
/*一天清零一次 计步*/
// AlarmHelper.setCleanStepCountAlarm(this, 23, 59, STEP_COUNT_ALARM_ACTION);
private void setPracticeAlarm() {
- ICLogger.i("setPracticeAlarm "+Runtime.practice_cycle+ " seconds!");
+ ICLogger.i("setPracticeAlarm " + Runtime.practice_cycle + " seconds!");
//只有周期大于1才有效,否则就等于单次测量
- if (Runtime.practice_cycle>1)
- AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context,Runtime.practice_cycle,Constants.ACTION_PRACTICE_REPORT_ALARM);
+ if (Runtime.practice_cycle > 1)
+ AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context, Runtime.practice_cycle, Constants.ACTION_PRACTICE_REPORT_ALARM);
mHandler.post(mdoPracticeCheck);
}
- private Runnable mdoPracticeCheck=new Runnable(){
+
+ private Runnable mdoPracticeCheck = new Runnable() {
@Override
public void run() {
//获取并设置当前步数
- ICLogger.i("自由锻炼中,设置步数 "+runtime.getTotalStepCount());
+ ICLogger.i("自由锻炼中,设置步数 " + runtime.getTotalStepCount());
Runtime.healthInfo.setStepCount(runtime.getTotalStepCount());
//开启定位
// locationClient.triggerLocationProcess();
//开启测温
- if(runtime.check_stat_do_temp_test())
+ if (runtime.check_stat_do_temp_test())
TemperatureUtil.DoTempTest();
//开启测量PPG
- if(runtime.check_stat_do_ppg_test())
+ if (runtime.check_stat_do_ppg_test())
HeartRateManager.triggerPPGtest();
}
};
- private void checkconnection(){
+ private void checkconnection() {
- if (!this.connection.isServerConnected())
- {
+ if (!this.connection.isServerConnected()) {
startConnectionRetryTimer();
}
}
+
private void wakeUpFromSleep() {
this.startAlarmCount = 0;
// alarmCycle = 1;
Toast.makeText((this.runtime.getContextProxy()).context, "从深度睡眠中切换模式,联网中", Toast.LENGTH_SHORT).show();
}
- public int cmcm_call_eiot_into_powersave_mode() { return 0; }
+ public int cmcm_call_eiot_into_powersave_mode() {
+ return 0;
+ }
public PowerManager.WakeLock getWakeLock(int paramInt) {
- PowerManager.WakeLock wakeLock = ((PowerManager)(this.runtime.getContextProxy()).context.getSystemService(POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, MY_WAKE_LOCKTAG);
+ PowerManager.WakeLock wakeLock = ((PowerManager) (this.runtime.getContextProxy()).context.getSystemService(POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, MY_WAKE_LOCKTAG);
// wakeLock.acquire(paramInt*60*1000L);
wakeLock.acquire(3000L);
return wakeLock;
}
-
- public Runtime getRuntime(){
+ public Runtime getRuntime() {
return runtime;
}
- public Connection getConnection(){
+
+ public Connection getConnection() {
return connection;
}
- private static boolean server_starting=true;
+
+ private static boolean server_starting = true;
+
@Override
public void onCreate() {
-
- server_starting=true;
+ if (mHandler == null) {
+ HandlerThread handlerThread = new HandlerThread("ic:core-thread");
+ handlerThread.start();
+ mHandler = new Handler(handlerThread.getLooper());
+ }
+ server_starting = true;
log("初始化网络协议服务");
- mProtocolServer=this;
- java.lang.Runtime.getRuntime().addShutdownHook(new Thread(){
+ mProtocolServer = this;
+ java.lang.Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
super.run();
//设置断网状态
ICLogger.i("shutdown !");
- Util.setSystemProperties("persist.sys.server_connected","false");
+ Util.setSystemProperties("persist.sys.server_connected", "false");
}
});
this.runtime = new Runtime();
this.runtime.setCacheDir(getExternalCacheDir());
this.runtime.setDBHelper(new DBHelper(getContentResolver(), this));
this.runtime.setContextProxy(new ContextProxy(this));
- this.runtime.setLbsHelper(new LBSHelper(this,this.runtime.getContextProxy().getWifiManager(), this.runtime));
+ this.runtime.setLbsHelper(new LBSHelper(this, this.runtime.getContextProxy().getWifiManager(), this.runtime));
this.runtime.setHRS(new heartRateStatus());
this.runtime.setUseQueue(true);
this.runtime.initDnsUtil(ICApplication.getInstance().getApplicationContext());
- if (Config.protocol_no==Config.PROTOCOL_MQTT)
- {
+ if (Config.protocol_no == Config.PROTOCOL_MQTT) {
connection = new mqttConnection(new ServerHandler(this), runtime);
- }else {
+ } else {
connection = new NettyConnection(new ServerHandler(this), runtime);
}
this.connectionServiceChain = getConnectionServiceChain();
// return;
// }
- smsManager= new ICSmsManager(runtime);
+ smsManager = new ICSmsManager(runtime);
//保证获取正确的计步数据及其他参数初始化
loadStepCount();
- if (Config.logBootDate(this)){
+ if (Config.logBootDate(this)) {
resetStepCount();
}
Config.LoadMessageConfigs();
if (Config.custom_name.equals("H88")) {
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED,true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED, true);
if (Config.getConfigInitFlag(this) == 0) {
Config.setLocationMode(this, CUSTOM_MOD8_GPS);
Config.setLocationCycle(this, 3600);
Config.setTemperatureTestCycle(runtime, 60 * 60);
Config.setConfigInitFlag(this, 1);
}
- }else if (Config.custom_name.equals("l004")) {
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOCK_WATCH,true);
+ } else if (Config.custom_name.equals("l004")) {
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOCK_WATCH, true);
if (Config.getConfigInitFlag(this) == 0) {
Config.setLocationMode(this, CUSTOM_MOD8_GPS);
Config.setConfigInitFlag(this, 1);
}
- }else if (Config.custom_name.equals("YQ") || Config.custom_name.equals("YQ_EN")) {
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOCK_WATCH,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_UNREADMSG,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_MSGREAD,true);
+ } else if (Config.custom_name.equals("YQ") || Config.custom_name.equals("YQ_EN")) {
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOCK_WATCH, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_UNREADMSG, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_MSGREAD, true);
if (Config.getConfigInitFlag(this) == 0) {
Config.setLocationMode(this, NORMAL_MOD);
- Config.setLocationCycle(this, 15*60);
+ Config.setLocationCycle(this, 15 * 60);
Config.setPPGTestCycle(this, 0);
Config.setTemperatureTestCycle(runtime, 0);
Config.setConfigInitFlag(this, 1);
}
- }else if (Config.custom_name.equals("AK")) {
+ } else if (Config.custom_name.equals("AK")) {
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_SOS,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOWBATTERY,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF,true);
- Config.enableSleep=true;
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_SOS, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOWBATTERY, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF, true);
+ Config.enableSleep = true;
- if (Config.getConfigInitFlag(this)==0) {
+ if (Config.getConfigInitFlag(this) == 0) {
Config.setPPGTestCycle(this, 0);
Config.setTemperatureTestCycle(runtime, 0);
Config.setConfigInitFlag(this, 1);
// runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);
// }
}
- }else if (Config.custom_name.equals("YT")) {
+ } else if (Config.custom_name.equals("YT")) {
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_SOS,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOWBATTERY,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF,true);
- Config.enableSleep=true;
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_SOS, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOWBATTERY, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF, true);
+ Config.enableSleep = true;
- if (Config.getConfigInitFlag(this)==0) {
+ if (Config.getConfigInitFlag(this) == 0) {
Config.setPPGTestCycle(this, 0);
Config.setTemperatureTestCycle(runtime, 0);
Config.setConfigInitFlag(this, 1);
- int contactcount=runtime.getDbHelper().getContactCount(getContentResolver());
- ICLogger.i("=====Contact count "+contactcount);
- if(contactcount==0){ //如果没有SOS
+ int contactcount = runtime.getDbHelper().getContactCount(getContentResolver());
+ ICLogger.i("=====Contact count " + contactcount);
+ if (contactcount == 0) { //如果没有SOS
ICLogger.i("=====add hotline 96885 ");
- ArrayList<Contact> contactArray=new ArrayList<Contact>();
+ ArrayList<Contact> contactArray = new ArrayList<Contact>();
contactArray.add(new Contact(Contact.CATEGORY_CALL, this.getResources().getString(R.string.hotline), "96885"));
- runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);
+ runtime.getDbHelper().saveContacts(contactArray, false, false, false, false, false, true);
}
}
- }else if (Config.custom_name.equals("SGL")) { //C5项目
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_ESCAPE,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOCK_WATCH,true);
+ } else if (Config.custom_name.equals("SGL")) { //C5项目
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_ESCAPE, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_CUTOFF, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_ILLEGAL_CUTOFF, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOCK_WATCH, true);
Config.forceMoveCheck = false; //对定位不进行运动检测。
- if (Config.getConfigInitFlag(this)==0) {
+ if (Config.getConfigInitFlag(this) == 0) {
Config.setLocationMode(this, CUSTOM_MOD8_GPS);
// Config.setLocationMode(this, CUSTOM_MOD8_WIFI);
- Config.setLocationCycle(this, 5*60);
+ Config.setLocationCycle(this, 5 * 60);
Config.setPPGTestCycle(this, 0);
Config.setTemperatureTestCycle(runtime, 0);
Config.setConfigInitFlag(this, 1);
// runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);
// }
}
- }else if (Config.custom_name.equals("L02") || Config.custom_name.equals("L03")||Config.custom_name.equals("L05")) { //L02
+ } else if (Config.custom_name.equals("L02") || Config.custom_name.equals("L03") || Config.custom_name.equals("L05")) { //L02
Config.forceMoveCheck = false; //即爱对gps不进行运动检测,此变量专门为了给其他协议进行强制运动检测用的。
if (Config.getConfigInitFlag(this) == 0) {
Config.setPPGTestCycle(this, 0);
Config.setConfigInitFlag(this, 1);
}
- }else if (Config.custom_name.equals("VitracK")){
+ } else if (Config.custom_name.equals("VitracK")) {
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_SOS,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOWBATTERY,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED,true);
- Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF,true);
- Config.enableSleep=false;
- if (Config.getConfigInitFlag(this)==0) {
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_SOS, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_LOWBATTERY, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_WEARED, true);
+ Config.ConfigAlarm(Runtime.AlarmType.ALARM_ANTIOFF, true);
+ Config.enableSleep = false;
+ if (Config.getConfigInitFlag(this) == 0) {
Config.setLocationMode(this, CUSTOM_MOD8_GPS);
- Config.setLocationCycle(this, 15*60);
- Config.setPPGTestCycle(this, 15*60);
- Config.setTemperatureTestCycle(runtime, 15*60);
+ Config.setLocationCycle(this, 15 * 60);
+ Config.setPPGTestCycle(this, 15 * 60);
+ Config.setTemperatureTestCycle(runtime, 15 * 60);
Config.setConfigInitFlag(this, 1);
}
- }else{
+ } else {
- if (Config.getConfigInitFlag(this)==0) {
+ if (Config.getConfigInitFlag(this) == 0) {
Config.setPPGTestCycle(this, 0);
Config.setTemperatureTestCycle(runtime, 0);
Config.setConfigInitFlag(this, 1);
runtime.setNeddReportCutoff(Config.getNeedCutOff(this));
runtime.setNeedAntioff(Config.getNeedAntiOff(this));
- Config.setHeartBeatCycle(this,alarmCycle); //临时设置为5分钟,给L03测试用。测试断线问题未解决,取消测试。
+ Config.setHeartBeatCycle(this, alarmCycle); //临时设置为5分钟,给L03测试用。测试断线问题未解决,取消测试。
//初始化ServerHeartBeat Cycle
Config.loadHearBeatSetting(runtime);
//初始化PPG,LocationMod,LocationCycle
//读取Alarm环境配置,项目不需要的Alarm不要发送, 目前环境变量配置优先。默认值会被覆盖。
Config.loadAlarmConfig();
- Config.enable_NTP_Server(this,!Config.disable_ntp_server);
+ Config.enable_NTP_Server(this, !Config.disable_ntp_server);
//初始化温度测试相关参数
//加载存储的健康数据校准值
- Config.loadPPG_BPH_BPL_SPO2_adjustvalue(this,runtime);
+ Config.loadPPG_BPH_BPL_SPO2_adjustvalue(this, runtime);
this.connectionServiceChain.processAttach(this.connection, this.runtime);
this.invokeHandlerServiceChain.processAttach(this.connection, this.runtime);
intentFilter.addAction(ACTION_QUERY_WEATHER);
intentFilter.addAction(ACTION_SEND_EMEGENCY_LOCATION_START);
intentFilter.addAction(ACTION_LOCAL_SOS_ACTION);
- registerReceiver(broadcastSOSReceiver,intentFilter);
+ registerReceiver(broadcastSOSReceiver, intentFilter);
//添加自由锻炼 接收
intentFilter = new IntentFilter();
intentFilter.addAction(Constants.ACTION_START_PRACTISE);
- registerReceiver(broadcastPracticeCMDReceiver,intentFilter);
+ registerReceiver(broadcastPracticeCMDReceiver, intentFilter);
//初始化Sim信号
this.mSignalUtil = SimSignalUtil.getInstance(this);
//初始化 电池电量监控工具(内部注册接收电池变化)
- batteryUtil = new BatteryUtil(this.runtime,connection);
+ batteryUtil = new BatteryUtil(this.runtime, connection);
//保证发送心跳时提前获取BatLevel数据
- int batlevel=batteryUtil.getBatteryLevel(this);
- runtime.setBattery(String.format("%03d",batlevel));
+ int batlevel = batteryUtil.getBatteryLevel(this);
+ runtime.setBattery(String.format("%03d", batlevel));
runtime.setBattery(batlevel);
- ICLogger.i("Battery get from api "+batlevel);
+ ICLogger.i("Battery get from api " + batlevel);
boolean charging = batteryUtil.isPowerConnected(this);
runtime.setPowerConnected(charging);
- ICLogger.i("Charging "+charging);
+ ICLogger.i("Charging " + charging);
// LedUtil.setRedLedOn(false);
- if (Config.isL03Tracker){
+ if (Config.isL03Tracker) {
- if (runtime.isPowerConnected()) {
+ if (runtime.isPowerConnected()) {
LedUtil.setRedLedOn(true);
- }else{
+ } else {
LedUtil.setRedLedOn(false);
}
}
//获取定位时间
- needLocateInAfterHeartBeat=true;
+ needLocateInAfterHeartBeat = true;
setLocationAlarm(runtime.getLocationInstance().getWorkingMod());
//设置温度测量间隔时间
//初始化佩戴检测
- runtime.anti_test_cycle=Config.getCheckAntiPolingCycle(this);
- if( runtime.anti_test_cycle>0){
- // setAntiAlarm();
+ runtime.anti_test_cycle = Config.getCheckAntiPolingCycle(this);
+ if (runtime.anti_test_cycle > 0) {
+ // setAntiAlarm();
}
//初始化蓝牙检测
- runtime.bleInfo.bleScanCycle=Config.getBleScanCycle(this);
- if(Config.BLEScanProtocol==1 && runtime.bleInfo.bleScanCycle>0)
- {
+ runtime.bleInfo.bleScanCycle = Config.getBleScanCycle(this);
+ if (Config.BLEScanProtocol == 1 && runtime.bleInfo.bleScanCycle > 0) {
setBleScanAlarm(runtime.bleInfo.bleScanCycle);
}
//设置来电模式
- Util.SetRingMode(this, AudioManager.RINGER_MODE_NORMAL,true);
+ Util.SetRingMode(this, AudioManager.RINGER_MODE_NORMAL, true);
//备份DB数据到sd cache目录,为调试方便
Util.getDBFile();
// test(); //test function
- //更新MCC MNC
+ //更新MCC MNC
CellInfoUtil.setCurrentAttachCellInfo(CoreService.getInstance().runtime);
- //更新IMEI
+ //更新IMEI
DeviceInfoUtil.updateImei(runtime);
//设置断网状态
- Util.setSystemProperties("persist.sys.server_connected","false");
+ Util.setSystemProperties("persist.sys.server_connected", "false");
//启动结束设置标志位,让心率和体温检测可以正常执行。
- server_starting=false;
+ server_starting = false;
//重置缓存中的在等待命令
Deliver.resetCMDReocrdsDB();
ReConnectToServer();
}
- private void test(){
+ private void test() {
ICLogger.i("周一清除所有睡眠数据Record");
runtime.getDbHelper().deleteSleepData();
}
//检查是否有未读消息需要提醒
- private void checkUnreadMessage(){
+ private void checkUnreadMessage() {
- String msg=Config.getLastUnReadMessage(this);
- Util.checkMesageNeedNotifi(msg,runtime);
+ String msg = Config.getLastUnReadMessage(this);
+ Util.checkMesageNeedNotifi(msg, runtime);
}
//内部广播StringMessage
- public static void DevliverStringMessage(String cmd){
- CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd,"");
+ public static void DevliverStringMessage(String cmd) {
+ CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd, "");
}
+
//内部广播StringMessage
- public static void DevliverStringMessage(String cmd,String str){
- CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd,str);
+ public static void DevliverStringMessage(String cmd, String str) {
+ CoreService.getInstance().connection.DeliverCMDMessageToSystem(cmd, str);
}
//表带剪断检测报警,此处只是设备本地提醒,并不发送报警信息给服务器。
- public void checkAlarmMessage(){
+ public void checkAlarmMessage() {
- if (runtime.Fence_Warning_flag>0 && Config.needAllwaysAlarmFenceOut){
+ if (runtime.Fence_Warning_flag > 0 && Config.needAllwaysAlarmFenceOut) {
runtime.Fence_Warning_flag++;
WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);
- runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_out_wall),2);
+ runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_out_wall), 2);
}
- if(runtime.Cut_off_flag>0 && Config.needAllwaysAlarmCutOff){
+ if (runtime.Cut_off_flag > 0 && Config.needAllwaysAlarmCutOff) {
runtime.Cut_off_flag++;
// WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);
if (Config.A9_noBroadCastActionStrip) {
- if(Config.needBroadcastCutoffAlarm) {
+ if (Config.needBroadcastCutoffAlarm) {
antiservice.send_cutoff_event_broadcast(1);
}
}
//检测久坐提醒
- public void checkKeepSitting(){
- String dateyyyyMMDDhhmmss=TimeUtil.getSystemTime3();
+ public void checkKeepSitting() {
+ String dateyyyyMMDDhhmmss = TimeUtil.getSystemTime3();
//为了更新 isInSleepRange, 下面的语句必须执行
TimeUtil.getCurrentSleepRecordDate(dateyyyyMMDDhhmmss);
- if(TimeUtil.isInSleepRange == false) { //不在睡眠时间就是久坐时间段。
- if (Runtime.lastSitCheckStepCount == -1){
- Runtime.lastSitCheckStepCount=runtime.getTotalStepCount();
- Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();
- }
- int keepsitRange=Config.getKeepSitRangeInMinutes(this);
- int minutes=(int)TimeUtil.diffBetween2DateInMinutes(Runtime.lastSitCheckTiimeyyyyMMddHHmmss,dateyyyyMMDDhhmmss);
- ICLogger.i("SitCheck last SitCheckTime "+ Runtime.lastSitCheckTiimeyyyyMMddHHmmss + " , current checktime "+dateyyyyMMDDhhmmss);
- ICLogger.i("SitCheck minutes "+ minutes + " , keepsitRange "+keepsitRange);
- if (minutes >=keepsitRange && keepsitRange>0){
- if ( (runtime.getTotalStepCount() - Runtime.lastSitCheckStepCount)/minutes < Config.KeepSitJudgementRefValue){
+ if (TimeUtil.isInSleepRange == false) { //不在睡眠时间就是久坐时间段。
+ if (Runtime.lastSitCheckStepCount == -1) {
+ Runtime.lastSitCheckStepCount = runtime.getTotalStepCount();
+ Runtime.lastSitCheckTiimeyyyyMMddHHmmss = TimeUtil.getSystemTime3();
+ }
+ int keepsitRange = Config.getKeepSitRangeInMinutes(this);
+ int minutes = (int) TimeUtil.diffBetween2DateInMinutes(Runtime.lastSitCheckTiimeyyyyMMddHHmmss, dateyyyyMMDDhhmmss);
+ ICLogger.i("SitCheck last SitCheckTime " + Runtime.lastSitCheckTiimeyyyyMMddHHmmss + " , current checktime " + dateyyyyMMDDhhmmss);
+ ICLogger.i("SitCheck minutes " + minutes + " , keepsitRange " + keepsitRange);
+ if (minutes >= keepsitRange && keepsitRange > 0) {
+ if ((runtime.getTotalStepCount() - Runtime.lastSitCheckStepCount) / minutes < Config.KeepSitJudgementRefValue) {
//平均 每分钟活动数 小于参考久坐计步值,表示久坐
ICLogger.i("SitCheck 平均 每分钟活动数 小于参考久坐计步值,表示久坐");
WakeLockUtil.ScreenOnWakeLockTemperary(this);
//提醒后 重置 lastCheckSitTime 以及 lastSitCheckStepCount , 重新计时
- Runtime.lastSitCheckStepCount=runtime.getTotalStepCount();
- Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();
+ Runtime.lastSitCheckStepCount = runtime.getTotalStepCount();
+ Runtime.lastSitCheckTiimeyyyyMMddHHmmss = TimeUtil.getSystemTime3();
- if(Config.isAlarmTypeEnabled(Runtime.AlarmType.ALARM_SEDENTARY)){
+ if (Config.isAlarmTypeEnabled(Runtime.AlarmType.ALARM_SEDENTARY)) {
runtime.setAlarmType(Runtime.AlarmType.ALARM_SEDENTARY);
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
ICLogger.i("triggerSOSLocationProcess ");
locationClient.triggerSOSLocationProcess();
}
- }else{
+ } else {
//只要 平均每分钟活动数大于参考值,则重置 lastCheckSitTime 以及 lastSitCheckStepCount
ICLogger.i("SitCheck 平均每分钟活动数大于参考值,则重置 lastCheckSitTime 以及 lastSitCheckStepCount");
- Runtime.lastSitCheckStepCount=runtime.getTotalStepCount();
- Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();
+ Runtime.lastSitCheckStepCount = runtime.getTotalStepCount();
+ Runtime.lastSitCheckTiimeyyyyMMddHHmmss = TimeUtil.getSystemTime3();
}
}
- }else{
- Runtime.lastSitCheckStepCount=-1; //不在时间段就重置数据,以便下一次使用能过重新开始计数。
+ } else {
+ Runtime.lastSitCheckStepCount = -1; //不在时间段就重置数据,以便下一次使用能过重新开始计数。
}
}
- public void updateSleepDate(){
- String dateyyyyMMDDhhmmss=TimeUtil.getSystemTime3();
- String sleepdate=TimeUtil.getCurrentSleepRecordDate(dateyyyyMMDDhhmmss);
- ICLogger.i("updateSleepDate "+sleepdate);
- if(TimeUtil.isInSleepRange == true) {
- runtime.getDbHelper().insertSleepRecord(new SleepRecord(dateyyyyMMDDhhmmss,sleepdate,runtime.getTotalStepCount()));
- runtime.sleepDataReported=false; //只要记录过数据 就证明有数据没有report
- }else{
+ public void updateSleepDate() {
+ String dateyyyyMMDDhhmmss = TimeUtil.getSystemTime3();
+ String sleepdate = TimeUtil.getCurrentSleepRecordDate(dateyyyyMMDDhhmmss);
+ ICLogger.i("updateSleepDate " + sleepdate);
+ if (TimeUtil.isInSleepRange == true) {
+ runtime.getDbHelper().insertSleepRecord(new SleepRecord(dateyyyyMMDDhhmmss, sleepdate, runtime.getTotalStepCount()));
+ runtime.sleepDataReported = false; //只要记录过数据 就证明有数据没有report
+ } else {
if (runtime.sleepDataReported == false) {
//calculate sleep data and report it randomly within 1 hour
runtime.sleepDataReported = true;
int score = runtime.getDbHelper().querySleepScore(sleepdate);
if (score > 0) {
- ICLogger.i("已经有"+sleepdate+"的睡眠数据!");
+ ICLogger.i("已经有" + sleepdate + "的睡眠数据!");
} else {
SleepInfo si = SleepInfo.getInstance();
si.setDate(sleepdate);
si.calculate_sleepInfo(runtime);
runtime.getDbHelper().updateSleepInfo(si);
- if (TimeUtil.getWeek().equals("周一")){
+ if (TimeUtil.getWeek().equals("周一")) {
ICLogger.i("周一清除所有睡眠数据Record");
runtime.getDbHelper().deleteSleepData();
}
// Observable.timer(randomint * 60 * 1000L, TimeUnit.MILLISECONDS).subscribe(new Action1<Long>() {
// public void call(Long param1Long) {
// connection.send(protocolAPIHelper);
- ICLogger.i("Send sleep info " + si.getCurrentDate()
- + " deep " + si.getDeepsleep_minutes()
- + " light " + si.getLightsleep_minutes()
- + " score " + si.getScore()
- );
- if (Config.enableSleep) {
- Deliver.sendLocationMSG(protocolAPIHelper.getSleepMSG(SleepInfo.getInstance(), runtime));
- }else{
- ICLogger.i(" 没有开启睡眠协议,skip send message!");
- }
+ ICLogger.i("Send sleep info " + si.getCurrentDate()
+ + " deep " + si.getDeepsleep_minutes()
+ + " light " + si.getLightsleep_minutes()
+ + " score " + si.getScore()
+ );
+ if (Config.enableSleep) {
+ Deliver.sendLocationMSG(protocolAPIHelper.getSleepMSG(SleepInfo.getInstance(), runtime));
+ } else {
+ ICLogger.i(" 没有开启睡眠协议,skip send message!");
+ }
// }
// });
}
}
}
+
public int onStartCommand(Intent paramIntent, int paramInt1, int paramInt2) {
- if (paramIntent != null && paramIntent.getAction()!=null) {
+ if (paramIntent != null && paramIntent.getAction() != null) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("onStartCommand action=");
stringBuilder.append(paramIntent.getAction());
if (Config.LOG_TOFILE)
ICLogger.logToFile("alarmCycle", "HEART_ALARM alarmCycle ");
return Service.START_STICKY;
- }else if (ACTION_LOCATION_ALARM.equals(paramIntent.getAction())) {
+ } else if (ACTION_LOCATION_ALARM.equals(paramIntent.getAction())) {
// if (cmcm_call_eiot_into_powersave_mode() == 1) {
if (Config.LOG_TOFILE) ICLogger.logToFile("alarmCycle", stringBuilder1.toString());
// this.locationClient.triggerLocationProcess();
- }else if (Constants.OTHER_ALARM_END.equals(paramIntent.getAction())) {
+ } else if (Constants.OTHER_ALARM_END.equals(paramIntent.getAction())) {
ICLogger.i("OTHER_ALARM_END set Ringmode Normal vib true");
- SilentManager.setSilentConfig(this,false);
- }else if (Constants.OTHER_ALARM_START.equals(paramIntent.getAction())) {
+ SilentManager.setSilentConfig(this, false);
+ } else if (Constants.OTHER_ALARM_START.equals(paramIntent.getAction())) {
ICLogger.i("OTHER_ALARM_START set Ringmode Silent vib false");
- SilentManager.setSilentConfig(this,true);
- }else if (Constants.ACTION_ALARM_BLE_SCAN.equals(paramIntent.getAction())) {
- //循环蓝牙扫描
+ SilentManager.setSilentConfig(this, true);
+ } else if (Constants.ACTION_ALARM_BLE_SCAN.equals(paramIntent.getAction())) {
+ //循环蓝牙扫描
setBleScanAlarm(runtime.bleInfo.bleScanCycle);
- }else if (Constants.ACTION_PRACTICE_REPORT_ALARM.equals(paramIntent.getAction())) {
+ } else if (Constants.ACTION_PRACTICE_REPORT_ALARM.equals(paramIntent.getAction())) {
//alarm是延迟的,所以这个判断主要是给最后一次可能无效的测量
- if (Runtime.practising==true) {
+ if (Runtime.practising == true) {
//开始下一轮健康测量
setPracticeAlarm();
}
- }else if (Constants.ACTION_CHECK_SERVER_RESPONSE.equals(paramIntent.getAction())) {
+ } else if (Constants.ACTION_CHECK_SERVER_RESPONSE.equals(paramIntent.getAction())) {
//暂时还使用 ScheduledThreadPoolExecutor , 时间要求不是那么的严格
- }else if (Constants.ACTION_RETRY_SERVER_CONNECT.equals(paramIntent.getAction())) {
+ } else if (Constants.ACTION_RETRY_SERVER_CONNECT.equals(paramIntent.getAction())) {
//暂时还使用 ScheduledThreadPoolExecutor , 时间要求不是那么的严格
- }else if (Constants.ACTION_CHECK_LOCATION_RESULT.equals(paramIntent.getAction())) {
+ } else if (Constants.ACTION_CHECK_LOCATION_RESULT.equals(paramIntent.getAction())) {
locationClient.waitAndSendLocation();
- }else if (Constants.SLEEP_ALARM.equals(paramIntent.getAction())) {
+ } else if (Constants.SLEEP_ALARM.equals(paramIntent.getAction())) {
StringBuilder stringBuilder1;
ICLogger.i("SLEEP_ALARM");
is_allowed_in_sleep_mode = 1;
setTempAlarm();
- return Service.START_STICKY;
+ return Service.START_STICKY;
} else if (STEP_COUNT_ALARM_ACTION.equals(paramIntent.getAction())) {
ICLogger.i("Reset Count At 00:00 ");
//update stepCount and broadcast before reset
//更新 运动控制的上次步数 然后再resetstecount
//runtime.setLastStepCount(runtime.getTotalStepCount()-runtime.getLastStepCount());
//runtime.setLastStepCountForBT(runtime.getTotalStepCount()-runtime.getLastStepCountForBT());
- resetStepCount();
+ resetStepCount();
//此处本来应该把刚刚reset前运动的步数设置到计步器里,继续开始计步。
// 由于计步接口没有提供设置步数。所以暂时只能清零,不能解决午夜还在运动的情况,会丢失一两次的数据。但是影响不大
runtime.setLastStepCountForBT(0);
//此消息来源于BroadCaset,收到开始测试的消息。
//此时需要重置HeartRateDetect Timer
//倘若有 参数 PPGTestCycle,则根据这个数值进行设置
- int ppgtestCycle=paramIntent.getIntExtra("PPGTestCycle",-1);
- if (ppgtestCycle >0){
- Config.setPPGTestCycle(runtime.getContextProxy().context,ppgtestCycle);
+ int ppgtestCycle = paramIntent.getIntExtra("PPGTestCycle", -1);
+ if (ppgtestCycle > 0) {
+ Config.setPPGTestCycle(runtime.getContextProxy().context, ppgtestCycle);
runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context));
- ICLogger.i("get and set PPGTestCycle "+ppgtestCycle);
+ ICLogger.i("get and set PPGTestCycle " + ppgtestCycle);
}
setHeartRateDetectAlarm(runtime.getPpgTestCycle());//重置心率检测周期,并触发一次检测
LocationClient.setForceLocation(1);
setLocationAlarm(runtime.getLocationInstance().getWorkingMod());//同时重置alarm并触发定位
- }else if(ACTION_CHECK_ANTIOFF_EVENT.equals(paramIntent.getAction())){
+ } else if (ACTION_CHECK_ANTIOFF_EVENT.equals(paramIntent.getAction())) {
//只在中断式检测过程中延时用
antiservice.check_ant_event();
}
return Service.START_NOT_STICKY;
}
- public boolean onUnbind(Intent paramIntent) { return false; }
+ public boolean onUnbind(Intent paramIntent) {
+ return false;
+ }
//每一分钟设置一次
public void setAlarm(int paramInt) {
// AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,paramInt,ACTION_ALARM);
}
- public void setHeartRateDetectAlarm(int heartRateDetectAlarmCycle){
+ public void setHeartRateDetectAlarm(int heartRateDetectAlarmCycle) {
if (Config.noPPGSensor) {
ICLogger.i("setHeartRateDetectAlarm oPPGSensor");
return;
}
- StringBuilder sb=new StringBuilder();
- if (heartRateDetectAlarmCycle>1) {
+ StringBuilder sb = new StringBuilder();
+ if (heartRateDetectAlarmCycle > 1) {
AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, heartRateDetectAlarmCycle, ACTION_HEATR_RATE_START);
}
- if(runtime.check_stat_do_ppg_test()) {
+ if (runtime.check_stat_do_ppg_test()) {
if (Runtime.practising == true) {
sb.append("自由锻炼中,跳过原有的循环心率检测!");
ICLogger.i("自由锻炼中,跳过原有的循环心率检测!");
} else {
sb.append("setHeartRateDetectAlarm " + heartRateDetectAlarmCycle);
- if(!server_starting)
+ if (!server_starting)
HeartRateManager.triggerPPGtest();
}
}
- if (Config.LOG_TOFILE)ICLogger.logToFile("alarmCycle",sb.toString());
+ if (Config.LOG_TOFILE) ICLogger.logToFile("alarmCycle", sb.toString());
}
- public void setBleScanAlarm(int cycle){
+ public void setBleScanAlarm(int cycle) {
//只有蓝牙扫描协议1才需要设置周期,蓝牙扫描协议0 为心跳及定位时才进行扫描
- if (Config.BLEScanProtocol!=1) {
+ if (Config.BLEScanProtocol != 1) {
ICLogger.i("BLEScanProtocol!=1 skip setPolingCheckAntiAlarm");
return;
}
- StringBuilder sb=new StringBuilder();
- if (cycle>=15) {
+ StringBuilder sb = new StringBuilder();
+ if (cycle >= 15) {
//由于蓝牙扫描一次15秒,所以周期要大于等于15秒
- AlarmHelper.setRealTimeAlarmInMicorSeconds(runtime.getContextProxy().context, cycle*1000, ACTION_ALARM_BLE_SCAN);
+ AlarmHelper.setRealTimeAlarmInMicorSeconds(runtime.getContextProxy().context, cycle * 1000, ACTION_ALARM_BLE_SCAN);
}
- sb.append("setBleScanAlarm " + cycle+" seconds");
+ sb.append("setBleScanAlarm " + cycle + " seconds");
locationClient.triggerBLEProcess();
ICLogger.i(sb.toString());
- if (Config.LOG_TOFILE)ICLogger.logToFile("alarmCycle",sb.toString());
+ if (Config.LOG_TOFILE) ICLogger.logToFile("alarmCycle", sb.toString());
}
- public void setEmegencyLocationSTOPAlarm(int delayTimeInMinutes){
- StringBuilder sb=new StringBuilder();
- AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,delayTimeInMinutes, ACTION_SEND_EMEGENCY_LOCATION_STOP);
- sb.append(" tEmegencyLocationSTOPAlarm "+ACTION_SEND_EMEGENCY_LOCATION_STOP);
+ public void setEmegencyLocationSTOPAlarm(int delayTimeInMinutes) {
+ StringBuilder sb = new StringBuilder();
+ AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, delayTimeInMinutes, ACTION_SEND_EMEGENCY_LOCATION_STOP);
+ sb.append(" tEmegencyLocationSTOPAlarm " + ACTION_SEND_EMEGENCY_LOCATION_STOP);
// ICLogger.i(sb.toString());
- if (Config.LOG_TOFILE)ICLogger.logToFile("alarmCycle",sb.toString());
+ if (Config.LOG_TOFILE) ICLogger.logToFile("alarmCycle", sb.toString());
}
+
public void setLocationAlarm(int mod) {
// int mod=runtime.getLocationInstance().getWorkingMod();
- StringBuilder sb=new StringBuilder();
- int cycle=60;
- switch(mod){
+ StringBuilder sb = new StringBuilder();
+ int cycle = 60;
+ switch (mod) {
case EMERGNECY_MOD:
case REALTIME_MOD:
- cycle=60;
+ cycle = 60;
break;
case NORMAL_MOD:
- cycle=15*60;
+ cycle = 15 * 60;
break;
case LOWPOWER_MOD:
- cycle=60*60;
+ cycle = 60 * 60;
break;
case CUSTOM_MOD:
case CUSTOM_MOD8_GPS:
case CUSTOM_MOD8_WIFI:
- cycle=runtime.getLocationInstance().getLocation_cycle();
+ cycle = runtime.getLocationInstance().getLocation_cycle();
break;
}
- if(cycle == 0)
- {
+ if (cycle == 0) {
ICLogger.i("locationCycle == 0 stop Location !");
- Config.noLocationCycle=true;
+ Config.noLocationCycle = true;
}
- if (Config.noLocationCycle==false)
- AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context,cycle, ACTION_LOCATION_ALARM);
+ if (Config.noLocationCycle == false)
+ AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context, cycle, ACTION_LOCATION_ALARM);
else
- ICLogger.i("skip set LocationAlarm " );
- sb.append(" setLocationAlarm "+ACTION_LOCATION_ALARM+" mod "+mod+", cycle in Seconds "+cycle);
+ ICLogger.i("skip set LocationAlarm ");
+ sb.append(" setLocationAlarm " + ACTION_LOCATION_ALARM + " mod " + mod + ", cycle in Seconds " + cycle);
ICLogger.i(sb.toString());
- if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());
+ if (Config.LOG_TOFILE)
+ FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", sb.toString());
// if (Runtime.practising==true) {
// ICLogger.i("自由锻炼中,跳过原有的循环定位!");
}
- public void setHeartAlarm(){
+ public void setHeartAlarm() {
// int mod=runtime.getLocationInstance().getWorkingMod();
- StringBuilder sb=new StringBuilder();
- int cycle=runtime.getHeartBeatCycle();
+ StringBuilder sb = new StringBuilder();
+ int cycle = runtime.getHeartBeatCycle();
//心跳指令默认设置
- AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,cycle, HEART_ALARM);
- sb.append(" setHeartAlarm "+HEART_ALARM+", cycle "+cycle);
+ AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, cycle, HEART_ALARM);
+ sb.append(" setHeartAlarm " + HEART_ALARM + ", cycle " + cycle);
// locationClient.triggerLocationProcess();
ICLogger.i(sb.toString());
- FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());
+ FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", sb.toString());
// AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context,1, HEART_ALARM);
}
- public void setAntiAlarm(){
+
+ public void setAntiAlarm() {
// int mod=runtime.getLocationInstance().getWorkingMod();
- StringBuilder sb=new StringBuilder();
- int cycle=runtime.anti_test_cycle;
- if(cycle>1) {
+ StringBuilder sb = new StringBuilder();
+ int cycle = runtime.anti_test_cycle;
+ if (cycle > 1) {
AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, cycle, ANTI_ALARM);
}
- sb.append(" setHeartAlarm "+ANTI_ALARM+", cycle "+cycle);
+ sb.append(" setHeartAlarm " + ANTI_ALARM + ", cycle " + cycle);
ICLogger.i(sb.toString());
- FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());
+ FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", sb.toString());
}
- public void setTempAlarm(){
+
+ public void setTempAlarm() {
// int mod=runtime.getLocationInstance().getWorkingMod();
- StringBuilder sb=new StringBuilder();
- int cycle=runtime.temp_test_Cycle;
+ StringBuilder sb = new StringBuilder();
+ int cycle = runtime.temp_test_Cycle;
- if(Config.noTempSensor) {
+ if (Config.noTempSensor) {
ICLogger.i("setTempAlarm noTempSensor");
return;
}
- if (cycle>1) {
+ if (cycle > 1) {
AlarmHelper.setRealTimeAlarmInSeconds(runtime.getContextProxy().context, cycle, TEMP_ALARM);
sb.append(" setTempAlarm " + TEMP_ALARM + ", cycle " + cycle);
- }else {
- sb.append(" setTempAlarm " + TEMP_ALARM + ", cycle " + cycle+"<=1 skip!");
+ } else {
+ sb.append(" setTempAlarm " + TEMP_ALARM + ", cycle " + cycle + "<=1 skip!");
}
// locationClient.triggerLocationProcess();
ICLogger.i(sb.toString());
- FileOutputUtil.fileOutput(runtime.getCacheDir(),"alarmCycle",sb.toString());
+ FileOutputUtil.fileOutput(runtime.getCacheDir(), "alarmCycle", sb.toString());
- if(runtime.check_stat_do_temp_test()) {
+ if (runtime.check_stat_do_temp_test()) {
if (Runtime.practising == true) {
ICLogger.i("自由锻炼中,跳过原有的循环温度检测!");
} else {
- if(!server_starting)
+ if (!server_starting)
TemperatureUtil.doTempTestInThread();
}
}
}
+
public void setUpLocationDataAlarm(long paramLong) {
- AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
+ AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, CoreService.class);
intent.setAction(ACTION_ALARM_ADD_DATAPOINTS);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, FLAG_UPDATE_CURRENT);
stringBuilder.append("interval=");
stringBuilder.append(paramLong);
ICLogger.i(stringBuilder.toString());
- AlarmHelper.setRealTimeAlarm( runtime.getContextProxy().context,(int)((System.currentTimeMillis() + paramLong)/1000),ACTION_ALARM_ADD_DATAPOINTS);
+ AlarmHelper.setRealTimeAlarm(runtime.getContextProxy().context, (int) ((System.currentTimeMillis() + paramLong) / 1000), ACTION_ALARM_ADD_DATAPOINTS);
}
public static class InnerService extends Service {
- public IBinder onBind(Intent param1Intent) { return null; }
+ public IBinder onBind(Intent param1Intent) {
+ return null;
+ }
/*给 API >= 18 的平台上用的灰色保活手段*/
public int onStartCommand(Intent param1Intent, int param1Int1, int param1Int2) {
}
public void handleMessage(Message param1Message) {
- CoreService coreService = (CoreService)this.mReference.get();
+ CoreService coreService = (CoreService) this.mReference.get();
if (coreService == null)
return;
coreService.invokeHandlerServiceChain.processUserRequest(param1Message, coreService.connection, coreService.runtime);
private static final String TAG = "ICSrv." + CoreService.class.getSimpleName();
- private ScheduledThreadPoolExecutor mTimer_retry_connect=null;
+ private ScheduledThreadPoolExecutor mTimer_retry_connect = null;
+
+ private static int retry_connect_count = 0; //当前重试次数
+ private static int retry_connect_max_times = 6; //最大重试次数 6次 , 即只重试2分钟,下一次重试将在下一个心跳包时进行。
+ private static int retry_cocnnect_cycle = 20; //重试间隔20秒
- private static int retry_connect_count=0; //当前重试次数
- private static int retry_connect_max_times=6; //最大重试次数 6次 , 即只重试2分钟,下一次重试将在下一个心跳包时进行。
- private static int retry_cocnnect_cycle=20; //重试间隔20秒
private void log(String msg) {
- ICLogger.log(TAG,msg);
+ ICLogger.log(TAG, msg);
}
- public static CoreService getInstance(){
+ public static CoreService getInstance() {
return mProtocolServer;
}
- public void startConnectionRetryTimer(){
+ public void startConnectionRetryTimer() {
//联网再重试连接服务器, 不能够联网的情况下不管是不是有sim卡,以及是否联网,都进行重试,以便处理下面情况:
//1、sim卡接触不良,掉卡,可以尝试用此法恢复
//2、网络信号不好,造成临时掉线,但是恢复慢或不恢复,可以用此法尝试恢复
// if (SimSignalUtil.checkNet(runtime.getContextProxy().context) ) {
- stopConnectionRetryTimer();
- if (mTimer_retry_connect == null) {
- mTimer_retry_connect = new ScheduledThreadPoolExecutor(10);
- }
- //如果开始进行连接重
- // {
- // 试,证明网络断开的,那么KeepAlive也需要重连(心跳包)
- retry_connect_count=0;
- KeepAlive.isConnected = false;
- if (mTimer_retry_connect != null) {
- mTimer_retry_connect.remove(mReConnectSrvThread);
- mTimer_retry_connect.scheduleAtFixedRate(mReConnectSrvThread, 5000, 20000, TimeUnit.MILLISECONDS); //每次都是断网才需要重连,delay 5秒重连,并且每20秒重试一次
- }
+ stopConnectionRetryTimer();
+ if (mTimer_retry_connect == null) {
+ mTimer_retry_connect = new ScheduledThreadPoolExecutor(10);
+ }
+ //如果开始进行连接重
+ // {
+ // 试,证明网络断开的,那么KeepAlive也需要重连(心跳包)
+ retry_connect_count = 0;
+ KeepAlive.isConnected = false;
+ if (mTimer_retry_connect != null) {
+ mTimer_retry_connect.remove(mReConnectSrvThread);
+ mTimer_retry_connect.scheduleAtFixedRate(mReConnectSrvThread, 5000, 20000, TimeUnit.MILLISECONDS); //每次都是断网才需要重连,delay 5秒重连,并且每20秒重试一次
+ }
// }
}
- private ReConnectSrvThread mReConnectSrvThread=new ReConnectSrvThread();
- private class ReConnectSrvThread implements Runnable{
+
+ private ReConnectSrvThread mReConnectSrvThread = new ReConnectSrvThread();
+
+ private class ReConnectSrvThread implements Runnable {
@Override
public void run() {
ReConnectToServer();
}
}
- private static int no_network_Heartbeats_Count=0;
+ private static int no_network_Heartbeats_Count = 0;
- public void ReConnectToServer(){
- long timeSincelastReceive=0;
- if(Runtime.lastLinkReceiveStamp>0)
- timeSincelastReceive=(System.currentTimeMillis()-Runtime.lastLinkReceiveStamp)/1000;
- if (timeSincelastReceive>0) ICLogger.i("距离上次从服务器收到数据,已经有 " + timeSincelastReceive + " 秒!");
- if (SimSignalUtil.checkNet(runtime.getContextProxy().context) ) {
+ public void ReConnectToServer() {
+ long timeSincelastReceive = 0;
+ if (Runtime.lastLinkReceiveStamp > 0)
+ timeSincelastReceive = (System.currentTimeMillis() - Runtime.lastLinkReceiveStamp) / 1000;
+ if (timeSincelastReceive > 0)
+ ICLogger.i("距离上次从服务器收到数据,已经有 " + timeSincelastReceive + " 秒!");
+ if (SimSignalUtil.checkNet(runtime.getContextProxy().context)) {
//里面如果连接成功 connectionOpen 会先发送 AP00 登录包 和发送AP03 心跳包 ,
// isServerConnected 成功则停止重试, KeepAlive会检测AP03心跳包的成功与否。此处只管socket连接是否成功
if (connection.isServerConnected()) {
ICLogger.i("retry 如果连接成功则停止重试!");
- no_network_Heartbeats_Count=0;
+ no_network_Heartbeats_Count = 0;
stopConnectionRetryTimer();
- }else {
+ } else {
if (retry_connect_count >= retry_connect_max_times) {
no_network_Heartbeats_Count++;
- ICLogger.i("retry " + retry_connect_count + " 次 >= " + retry_connect_max_times + " ,停止重试!等待下一次心跳再重试! 已经第"+no_network_Heartbeats_Count+"次心跳都没有连接服务器成功!");
+ ICLogger.i("retry " + retry_connect_count + " 次 >= " + retry_connect_max_times + " ,停止重试!等待下一次心跳再重试! 已经第" + no_network_Heartbeats_Count + "次心跳都没有连接服务器成功!");
stopConnectionRetryTimer();
} else {
}
}
- }else{
+ } else {
//没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网
- ICLogger.i("retry "+no_network_Heartbeats_Count+" 没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网!");
+ ICLogger.i("retry " + no_network_Heartbeats_Count + " 没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网!");
no_network_Heartbeats_Count++;
stopConnectionRetryTimer();
}
- if( no_network_Heartbeats_Count >12){
- ICLogger.i("当前第"+no_network_Heartbeats_Count+"次心跳都没有连接服务器成功 > 10 ,重置SIM卡尝试重新注册网络!");
+ if (no_network_Heartbeats_Count > 12) {
+ ICLogger.i("当前第" + no_network_Heartbeats_Count + "次心跳都没有连接服务器成功 > 10 ,重置SIM卡尝试重新注册网络!");
SimSignalUtil.send_at_to_reset_simcard(runtime); //直接下此命令不能实现断网重连,所以干脆采用关闭网络再打开的方式。
- SimSignalUtil.setAirMode(this,"OpenAirplane");
- mHandler.postDelayed(reopenSim,5000); //5秒后重新链接服务器。
- no_network_Heartbeats_Count=0;//重置Sim卡后重置计数。防止后面多次重置Sim卡。
+ SimSignalUtil.setAirMode(this, "OpenAirplane");
+ mHandler.postDelayed(reopenSim, 5000); //5秒后重新链接服务器。
+ no_network_Heartbeats_Count = 0;//重置Sim卡后重置计数。防止后面多次重置Sim卡。
}
}
- private Runnable reopenSim =new Runnable(){
+
+ private Runnable reopenSim = new Runnable() {
@Override
public void run() {
- if (CoreService.getInstance()!=null) {
+ if (CoreService.getInstance() != null) {
SimSignalUtil.setAirMode(CoreService.getInstance(), "CloseAirplane");
- // disconnect_server();
- // ReConnectToServer();
+ // disconnect_server();
+ // ReConnectToServer();
}
}
};
- public void stopConnectionRetryTimer(){
- if (mTimer_retry_connect !=null){
+
+ public void stopConnectionRetryTimer() {
+ if (mTimer_retry_connect != null) {
mTimer_retry_connect.shutdownNow();
// while(!mTimer_retry_connect.isTerminated())
// {
}
}
- private boolean needLogin(){
+ private boolean needLogin() {
return true;
}
-
-
@Override
public void onDestroy() {
super.onDestroy();
}
- public void disconnect_server(){
+ public void disconnect_server() {
this.connection.close();
}
package com.enqualcomm.support;
-import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
-import android.content.ContentResolver;
import android.content.Context;
-import android.content.ContextWrapper;
import android.content.Intent;
import android.content.IntentFilter;
-import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.os.SystemClock;
-import android.telephony.SmsManager;
import android.telephony.SmsMessage;
import android.text.TextUtils;
-import android.widget.Toast;
import com.enqualcomm.support.bean.Contact;
import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.service.SmsDatabaseChaneObserver;
import com.enqualcomm.support.utils.APNUtil;
import com.enqualcomm.support.utils.CameraUtil;
-import com.enqualcomm.support.utils.CellInfoUtil;
import com.enqualcomm.support.utils.ContextProxy;
import com.enqualcomm.support.utils.DeviceInfoUtil;
import com.enqualcomm.support.utils.ICAudioManager;
import com.enqualcomm.support.utils.ICLogger;
import com.enqualcomm.support.utils.LanguageUtils;
import com.enqualcomm.support.utils.SendEmail;
-import com.enqualcomm.support.utils.ServiceUtil;
import com.enqualcomm.support.utils.SimSignalUtil;
import com.enqualcomm.support.utils.TimeUtil;
import com.enqualcomm.support.utils.Util;
import java.net.URL;
import java.util.ArrayList;
import java.util.Iterator;
-import java.util.concurrent.TimeUnit;
import chestnut.utils.PhoneUtils;
import static com.enqualcomm.support.Constants.ACTION_SMSCMD_TEST;
import static com.enqualcomm.support.Constants.ACTION_SMS_RECEIVED;
import static com.enqualcomm.support.Constants.ACTION_START_FOTA_UPDATE;
-import static com.enqualcomm.support.Constants.DIALOG_ACTION;
import static com.enqualcomm.support.Constants.KeyReplyData;
-import static com.enqualcomm.support.Constants.contact;
-import static com.enqualcomm.support.utils.DeviceInfoUtil.getDeviceVersion;
import static com.enqualcomm.support.utils.SimSignalUtil.send_at_cmd;
import static com.enqualcomm.support.utils.SimSignalUtil.send_at_setImei0;
-import static com.enqualcomm.support.utils.SimSignalUtil.send_at_setImei1;
-public class ICSmsManager extends BroadcastReceiver {
+public class ICSmsManager extends BroadcastReceiver {
- private static String cell_number_to_reply=""; //this number is use for ACTION_SMSCMD_Reply
+ private static String cell_number_to_reply = ""; //this number is use for ACTION_SMSCMD_Reply
private static long preTimeMillis;
private Context mContext = null;
Handler mHandler;
- ReplayLocation replayLocation=new ReplayLocation();
- private boolean needshowToast=false;
+ ReplayLocation replayLocation = new ReplayLocation();
+ private boolean needshowToast = false;
@Override
public void onReceive(Context context, Intent intent) {
- if (CoreService.getInstance()==null) {
+ if (CoreService.getInstance() == null) {
ICLogger.i("CoreService still not started , skip SMS cmd!");
return;
}
- mContext=context;
- runtime=CoreService.getInstance().runtime;
+ mContext = context;
+ runtime = CoreService.getInstance().runtime;
String action = intent.getAction();
- ICLogger.i(" onReceive Action "+action);
+ ICLogger.i(" onReceive Action " + action);
if (ACTION_SMSCMD.equals(action)) {
String cmd = intent.getStringExtra("smsCmd");
handleSMS_CMD("", cmd);
- }else if (ACTION_SMSCMD_Reply.equals(action)) {
+ } else if (ACTION_SMSCMD_Reply.equals(action)) {
String replydata = intent.getStringExtra(KeyReplyData);
sendSMS(cell_number_to_reply, replydata);
cell_number_to_reply = "";
- }else if (ACTION_SMSCMD_TEST.equals(action)){
+ } else if (ACTION_SMSCMD_TEST.equals(action)) {
String cmd = intent.getStringExtra("cmd");
String arg = intent.getStringExtra("arg1");
- handle_test_cmd(cmd,arg);
- }else if (ACTION_SMS_RECEIVED.equals(action)) {
+ handle_test_cmd(cmd, arg);
+ } else if (ACTION_SMS_RECEIVED.equals(action)) {
long currenttime = System.currentTimeMillis();
// if (currenttime - ICSmsManager.preTimeMillis > 30000L) {
- ICSmsManager.preTimeMillis = currenttime;
+ ICSmsManager.preTimeMillis = currenttime;
// (new Thread(new Runnable() {
// public void run() {
- SystemClock.sleep(3000L);
- if (intent == null || intent.getAction() == null) return;
-
- //长短信会被分拆送来,因此可能会有多个PDU。Protocol Description Unit是短信的工业标准。
- Object[] pduArray = (Object[]) intent.getExtras().get("pdus");
- ICLogger.i("pdu number=" + pduArray.length);
- String message = "";
- String from = null;
- for (int i = 0; i < pduArray.length; i++) {
- SmsMessage sms = SmsMessage.createFromPdu((byte[]) pduArray[i]);//将PDU转换为SmsMessage格式
- ICLogger.i("From : " + sms.getDisplayOriginatingAddress());
- ICLogger.i("SMS : " + sms.getDisplayMessageBody());
- from = sms.getDisplayOriginatingAddress();
- message += sms.getDisplayMessageBody();
- }
- ICLogger.i("收到" + from + "短信:" + message);
+ SystemClock.sleep(3000L);
+ if (intent == null || intent.getAction() == null) return;
+
+ //长短信会被分拆送来,因此可能会有多个PDU。Protocol Description Unit是短信的工业标准。
+ Object[] pduArray = (Object[]) intent.getExtras().get("pdus");
+ ICLogger.i("pdu number=" + pduArray.length);
+ String message = "";
+ String from = null;
+ for (int i = 0; i < pduArray.length; i++) {
+ SmsMessage sms = SmsMessage.createFromPdu((byte[]) pduArray[i]);//将PDU转换为SmsMessage格式
+ ICLogger.i("From : " + sms.getDisplayOriginatingAddress());
+ ICLogger.i("SMS : " + sms.getDisplayMessageBody());
+ from = sms.getDisplayOriginatingAddress();
+ message += sms.getDisplayMessageBody();
+ }
+ ICLogger.i("收到" + from + "短信:" + message);
// Toast.makeText(context, "收到" + from + "短信:" + message, Toast.LENGTH_LONG).show();
- if (handleSMS_CMD(from, message) == false) {
- //说明不是sms命令,提示短信接收。
- ContextProxy.sendMsgBroadcast(context, message, 1);
- }
+ if (handleSMS_CMD(from, message) == false) {
+ //说明不是sms命令,提示短信接收。
+ ContextProxy.sendMsgBroadcast(context, message, 1);
+ }
// }
// })).start();
// }
@Override
public void replyCallBack(String locationResponseUrl) {
- LocationClient locationClient=LocationClient.getInstance();
- if (locationClient!=null){
+ LocationClient locationClient = LocationClient.getInstance();
+ if (locationClient != null) {
locationClient.setLocationResponse(null);
}
- sendSMS(cell_number_to_reply,"http://maps.google.com/?q="+locationResponseUrl);
- cell_number_to_reply="";
+ sendSMS(cell_number_to_reply, "http://maps.google.com/?q=" + locationResponseUrl);
+ cell_number_to_reply = "";
}
}
- public ICSmsManager( Runtime _runtime) {
+
+ public ICSmsManager(Runtime _runtime) {
this.runtime = _runtime;
this.mContext = runtime.getContextProxy().context;
- IntentFilter intentfilter=new IntentFilter();
+ IntentFilter intentfilter = new IntentFilter();
intentfilter.addAction(ACTION_SMSCMD_Reply);
- this.mContext.registerReceiver(this,intentfilter);
+ this.mContext.registerReceiver(this, intentfilter);
// registerSmsDatabaseChangeObserver(mContext);
- mHandler=new Handler(EventLooperHandlerThread.makeLooper(ICSmsManager.class.getSimpleName()),new Handler.Callback() {
+ mHandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper(), new Handler.Callback() {
@Override
public boolean handleMessage(Message message) {
switch (message.what) {
}
return false;
}
- } );
+ });
}
android.telephony.SmsManager smsManager = android.telephony.SmsManager.getDefault();
Iterator msgit = smsManager.divideMessage(msg).iterator();
- while(msgit.hasNext()) {
- String message= (String)msgit.next();
- ICLogger.i("reply message to "+phonenumber+", "+message);
- if (phonenumber!=null && !phonenumber.isEmpty()) {
+ while (msgit.hasNext()) {
+ String message = (String) msgit.next();
+ ICLogger.i("reply message to " + phonenumber + ", " + message);
+ if (phonenumber != null && !phonenumber.isEmpty()) {
smsManager.sendTextMessage(phonenumber, (String) null, message, (PendingIntent) null, (PendingIntent) null);
}
}
}
- private boolean isAdminNumber(String phoneNumb){
+ private boolean isAdminNumber(String phoneNumb) {
return true;
}
- private void broadCastStartFotaUpdate(Context context){
+ private void broadCastStartFotaUpdate(Context context) {
Intent intent = new Intent();
intent.setAction(ACTION_START_FOTA_UPDATE);
//SW: L02_20200208_V1
- public String RemoveEncrypedHeader(String sms){
- String smsPWD=Config.getSMSPwd(mContext);
- if(!smsPWD.equals("none")){
- if (!sms.startsWith(smsPWD)){
+ public String RemoveEncrypedHeader(String sms) {
+ String smsPWD = Config.getSMSPwd(mContext);
+ if (!smsPWD.equals("none")) {
+ if (!sms.startsWith(smsPWD)) {
ICLogger.i("开头不是密码!");
- }else{
+ } else {
//ICLogger.i("开头不是密码!");
return sms;
}
- }else{
+ } else {
return sms;
}
return sms;
}
/*
- * return false表示不是命令, true表示是命令,且已经执行
- * */
- public boolean handleSMS_CMD(String phonenumber, String sms){
+ * return false表示不是命令, true表示是命令,且已经执行
+ * */
+ public boolean handleSMS_CMD(String phonenumber, String sms) {
if (isAdminNumber(phonenumber)) {
String ENCRYPED_HEADER = Config.getSMSPwd(mContext);
if (sms == null || sms.trim().isEmpty()) return false;
- ICLogger.i("received SMSCMD "+sms);
- sms=sms.trim();
- if (sms.equals(ENCRYPED_HEADER + "#logctl#=upload,all")){
- sms=ENCRYPED_HEADER+"#logctl#=upload,SDLog:Android/ic";
+ ICLogger.i("received SMSCMD " + sms);
+ sms = sms.trim();
+ if (sms.equals(ENCRYPED_HEADER + "#logctl#=upload,all")) {
+ sms = ENCRYPED_HEADER + "#logctl#=upload,SDLog:Android/ic";
}
//$HX,SSER,OK,91.201.4.79,5018,C,589883
- if (sms.startsWith(ENCRYPED_HEADER+"$HX,SSER,OK,")){
- String[] tmplist=sms.split(",");
- if (tmplist.length==7){
- String ServeriIp=tmplist[3];
- String ServerPort=tmplist[4];
- String imeiend=tmplist[6];
+ if (sms.startsWith(ENCRYPED_HEADER + "$HX,SSER,OK,")) {
+ String[] tmplist = sms.split(",");
+ if (tmplist.length == 7) {
+ String ServeriIp = tmplist[3];
+ String ServerPort = tmplist[4];
+ String imeiend = tmplist[6];
if (runtime.IMEI().endsWith(imeiend)) {
- sms=ENCRYPED_HEADER+"#IP#="+ServeriIp+":"+ServerPort+"#";
+ sms = ENCRYPED_HEADER + "#IP#=" + ServeriIp + ":" + ServerPort + "#";
ICLogger.i("收到客户自定义 服务器IP设置命令,转化为 #IP#命令!");
- }else{
- sendSMS(phonenumber, imeiend+" IMEI 校验错误!");
+ } else {
+ sendSMS(phonenumber, imeiend + " IMEI 校验错误!");
return true;
}
- }else{
+ } else {
ICLogger.i(" 设置 Server IP 命令错误。");
- sendSMS(phonenumber, sms+" 格式错误!");
+ sendSMS(phonenumber, sms + " 格式错误!");
return true;
}
}
- if (sms.startsWith(ENCRYPED_HEADER+"#apn#=") && sms.endsWith("#")) {
+ if (sms.startsWith(ENCRYPED_HEADER + "#apn#=") && sms.endsWith("#")) {
String[] tmp = sms.split("#");
if (tmp.length == 3) {
String[] apnvalues = tmp[2].replace("=", "").split(",");
String apnstr = APNUtil.getCurrentAPN(mContext);
sendSMS(phonenumber, apnstr);
- }else if (apnvalues[0].equals("check")) {
- String mcc=runtime.getLocationInstance().getMCC();
- String mnc=runtime.getLocationInstance().getMNC();
- String apnstr = APNUtil.checkAPN(mcc,mnc,mContext);
+ } else if (apnvalues[0].equals("check")) {
+ String mcc = runtime.getLocationInstance().getMCC();
+ String mnc = runtime.getLocationInstance().getMNC();
+ String apnstr = APNUtil.checkAPN(mcc, mnc, mContext);
sendSMS(phonenumber, apnstr);
} else {
sendSMS(phonenumber, "apn cmd format error!");
sendSMS(phonenumber, "apn cmd format error!");
}
- } else if (sms.startsWith(ENCRYPED_HEADER+"#deviceinfo#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#deviceinfo#")) {
// ICLogger.i("SMS " + sms + " reply " + DeviceInfoUtil.getDeviceVersion(runtime));
// sendSMS(phonenumber, DeviceInfoUtil.getDeviceVersion(runtime));
ICLogger.i("SMS " + sms + " reply " + DeviceInfoUtil.getShortDeviceInfo(runtime));
sendSMS(phonenumber, DeviceInfoUtil.getShortDeviceInfo(runtime));
- } else if (sms.startsWith(ENCRYPED_HEADER+"#status#")) {
- String reply = "IMEI=" + runtime.IMEI() + "\nSW:" + DeviceInfoUtil.getVersionCode(mContext) + " " + DeviceInfoUtil.getSWVersionDisplayName()+"\nBattery:"+runtime.getBattery()+"%";
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#status#")) {
+ String reply = "IMEI=" + runtime.IMEI() + "\nSW:" + DeviceInfoUtil.getVersionCode(mContext) + " " + DeviceInfoUtil.getSWVersionDisplayName() + "\nBattery:" + runtime.getBattery() + "%";
ICLogger.i("SMS " + sms + " reply \n" + reply);
sendSMS(phonenumber, reply);
- } else if (sms.startsWith(ENCRYPED_HEADER+"#atcmd#=")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#atcmd#=")) {
String cmd = sms.substring(8);
ICLogger.i("atcmd " + cmd);
- if (cmd.length() >0 ) {
- send_at_cmd(runtime,cmd);
- sendSMS(phonenumber, "run At cmd "+cmd+"!");
- } else {
+ if (cmd.length() > 0) {
+ send_at_cmd(runtime, cmd);
+ sendSMS(phonenumber, "run At cmd " + cmd + "!");
+ } else {
sendSMS(phonenumber, "At cmd empty error!");
}
- }else if (sms.startsWith(ENCRYPED_HEADER+"#imei:")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#imei:")) {
String imei = sms.substring(6);
ICLogger.i("SMS " + sms + " imei=" + imei);
if (imei.length() == 15) {
- send_at_setImei0(runtime,imei);
+ send_at_setImei0(runtime, imei);
Config.setIMEI(mContext, imei);
runtime.setImeiAndCid(imei, "");
sendSMS(phonenumber, "set IMEI " + imei + " success !");
} else {
sendSMS(phonenumber, "set IMEI " + imei + " failed ! len!=15");
}
- } else if ((sms.startsWith(ENCRYPED_HEADER+"#ip#=") || sms.startsWith(ENCRYPED_HEADER+"#host#=")) && sms.endsWith("#")) {
+ } else if ((sms.startsWith(ENCRYPED_HEADER + "#ip#=") || sms.startsWith(ENCRYPED_HEADER + "#host#=")) && sms.endsWith("#")) {
String tmp[] = sms.split("=");
String reply = "";
ICLogger.i(sms + " len " + tmp.length);
if (tmp.length == 2) {
if (tmp[1].equals("reset#")) {
- Config.setCustomServer(mContext,false, protocolAPIHelper.getDefaultServerIP(),protocolAPIHelper.getDefaultServerPort());
+ Config.setCustomServer(mContext, false, protocolAPIHelper.getDefaultServerIP(), protocolAPIHelper.getDefaultServerPort());
reply = "reset ServerIP to " + protocolAPIHelper.getDefaultServerIP() + ":" + protocolAPIHelper.getDefaultServerPort() + " success! ";
Config.loadServerSettings(runtime);
CoreService.getInstance().disconnect_server();
if (ipstr.length == 2) {
String ip = ipstr[0];
int port = Integer.valueOf(ipstr[1].replace("#", ""));
- Config.setCustomServer(mContext,true,ip,port);
+ Config.setCustomServer(mContext, true, ip, port);
reply = sms + " success! ";
Config.loadServerSettings(runtime);
CoreService.getInstance().disconnect_server();
if (ipstr.length == 2) {
String ip = ipstr[0];
int port = Integer.valueOf(ipstr[1].replace("#", ""));
- Config.setCustomServer(mContext,true,ip,port);
+ Config.setCustomServer(mContext, true, ip, port);
reply = sms + " success! ";
Config.loadServerSettings(runtime);
CoreService.getInstance().disconnect_server();
reply = sms + " falied! ";
}
sendSMS(phonenumber, reply);
- } else if (sms.startsWith(ENCRYPED_HEADER+"#setlocation#=") && sms.endsWith("#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#setlocation#=") && sms.endsWith("#")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
if (tmp[1].equals("reset#")) {
cycle = Integer.valueOf(t[1]);
} catch (Exception e) {
e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
+ ICLogger.e(e.getMessage(), e);
}
- if ( mod > 0 && cycle >= 30) {
+ if (mod > 0 && cycle >= 30) {
switch (mod) {
case ICLocation.NORMAL_MOD:
cycle = 60 * 15;
sendSMS(phonenumber, "setlocation format error!");
}
- } else if (sms.startsWith(ENCRYPED_HEADER+"#skipmovecheck#=")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#skipmovecheck#=")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
if (tmp[1].equals("current")) {
} else {
sendSMS(phonenumber, "skipmovecheck format error!");
}
- }else if(sms.startsWith(ENCRYPED_HEADER+"#wifictl#=")){
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#wifictl#=")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
if (tmp[1].equals("current")) {
- sendSMS(phonenumber, "Current Wifi Setting SSID " + Config.getWiFiSSID(mContext) +", WiFiPassword "+Config.getWiFiPasswd(mContext)+ "!");
+ sendSMS(phonenumber, "Current Wifi Setting SSID " + Config.getWiFiSSID(mContext) + ", WiFiPassword " + Config.getWiFiPasswd(mContext) + "!");
} else if (tmp[1].equals("reset")) {
- Config.setWiFiSSID(mContext,Config.DefaultWiFiSSID);
- Config.setWiFiPasswd(mContext,Config.DefaultWiFiPWD);
- sendSMS(phonenumber, "reset Wifi Setting to SSID " + Config.getWiFiSSID(mContext) +", WiFiPassword "+Config.getWiFiPasswd(mContext)+ "!");
+ Config.setWiFiSSID(mContext, Config.DefaultWiFiSSID);
+ Config.setWiFiPasswd(mContext, Config.DefaultWiFiPWD);
+ sendSMS(phonenumber, "reset Wifi Setting to SSID " + Config.getWiFiSSID(mContext) + ", WiFiPassword " + Config.getWiFiPasswd(mContext) + "!");
} else if (tmp[1].startsWith("connect,")) {
- String tmplist[]=tmp[1].split(",");
- if (tmplist.length==4){
- String SSID=tmplist[1];
- String PWD=tmplist[2];
- String encyptType=tmplist[3];
- Config.setWiFiSSID(mContext,SSID);
- Config.setWiFiPasswd(mContext,PWD);
- sendSMS(phonenumber, "set and connect to Wifi SSID " + Config.getWiFiSSID(mContext) +", WiFiPassword "+Config.getWiFiPasswd(mContext)+ ", encryptType "+encyptType+"!");
+ String tmplist[] = tmp[1].split(",");
+ if (tmplist.length == 4) {
+ String SSID = tmplist[1];
+ String PWD = tmplist[2];
+ String encyptType = tmplist[3];
+ Config.setWiFiSSID(mContext, SSID);
+ Config.setWiFiPasswd(mContext, PWD);
+ sendSMS(phonenumber, "set and connect to Wifi SSID " + Config.getWiFiSSID(mContext) + ", WiFiPassword " + Config.getWiFiPasswd(mContext) + ", encryptType " + encyptType + "!");
//connect to wifi
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
- Deliver.connectToWifi(SSID,PWD,encyptType);
+ Deliver.connectToWifi(SSID, PWD, encyptType);
}
}, 500);
- }else {
+ } else {
sendSMS(phonenumber, "WiFi Control format error!");
}
} else if (tmp[1].startsWith("noTurnOffWhenScreenOff,")) {
- String tmplist[]=tmp[1].split(",");
- if (tmplist.length==2){
- String enabled=tmplist[1];
- boolean isenabled=enabled.toLowerCase().equals("true")?true:false;
- runtime.setNoTurnOffOnScreenOff(isenabled);
- StringBuilder sb=new StringBuilder();
- if (isenabled && !Util.isWifiIsOpen(runtime.getContextProxy().context,runtime)){
- Util.turnOnWifiForConnect(runtime.getContextProxy().context,runtime);
- sb.append(" Turn On Wifi first and ");
- }
- sb.append("set noTurnOffWhenScreenOff " + enabled);
- sendSMS(phonenumber,sb.toString() );
-
- }else {
+ String tmplist[] = tmp[1].split(",");
+ if (tmplist.length == 2) {
+ String enabled = tmplist[1];
+ boolean isenabled = enabled.toLowerCase().equals("true") ? true : false;
+ runtime.setNoTurnOffOnScreenOff(isenabled);
+ StringBuilder sb = new StringBuilder();
+ if (isenabled && !Util.isWifiIsOpen(runtime.getContextProxy().context, runtime)) {
+ Util.turnOnWifiForConnect(runtime.getContextProxy().context, runtime);
+ sb.append(" Turn On Wifi first and ");
+ }
+ sb.append("set noTurnOffWhenScreenOff " + enabled);
+ sendSMS(phonenumber, sb.toString());
+
+ } else {
sendSMS(phonenumber, "WiFi Control format error!");
}
} else {
} else {
sendSMS(phonenumber, "WiFi Control format error!");
}
- }else if(sms.startsWith(ENCRYPED_HEADER+"#logctl#=")){
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#logctl#=")) {
- needshowToast=sms.contains("SDLogInfo:");
+ needshowToast = sms.contains("SDLogInfo:");
String tmp[] = sms.split("=");
if (tmp.length == 2) {
if (tmp[1].equals("current")) {
sendSMS(phonenumber, "Current FtpLogServer " + Config.getFtpServer(mContext) + ", user " + Config.getFtpUser(mContext) + ", pwd " + Config.getFtpPWD(mContext));
- }else if (tmp[1].equals("reset")) {
+ } else if (tmp[1].equals("reset")) {
Config.setFtpServer(mContext, Config.DefaultLogFtpServer);
Config.setFtpUser(mContext, Config.DefaultLogFtpUser);
Config.setFtpPWD(mContext, Config.DefaultLogFtpPWD);
sendSMS(phonenumber, "reset FtpLogServer to " + Config.getFtpServer(mContext) + ", user " + Config.getFtpUser(mContext) + ", pwd " + Config.getFtpPWD(mContext));
- }else if (tmp[1].startsWith("upload,")){
+ } else if (tmp[1].startsWith("upload,")) {
String cmdl[] = tmp[1].split(",");
if (cmdl.length == 2) {
- String logfile=cmdl[1];
+ String logfile = cmdl[1];
- if (!logfile.isEmpty()&& ( logfile.startsWith("SDLog:")||logfile.startsWith("SDLogInfo:"))){
+ if (!logfile.isEmpty() && (logfile.startsWith("SDLog:") || logfile.startsWith("SDLogInfo:"))) {
String sdfilelist[] = logfile.split(":");
- if (sdfilelist.length==2) {
- String fileOrDir=sdfilelist[1];
+ if (sdfilelist.length == 2) {
+ String fileOrDir = sdfilelist[1];
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
serverurl = new URL(Util.getServerLogfilePath(Config.getFtpServer(mContext), TimeUtil.getSystemTime3(), logfile, runtime));
} catch (MalformedURLException e) {
e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
+ ICLogger.e(e.getMessage(), e);
}
- if ( new File(filepath).exists()) {
+ if (new File(filepath).exists()) {
Util.getDBFile();
- sendSMS(phonenumber,"start Upload " + filepath + " to " + Config.getFtpServer(mContext) + " ...");
+ sendSMS(phonenumber, "start Upload " + filepath + " to " + Config.getFtpServer(mContext) + " ...");
- if (logfile.startsWith("SDLogInfo:")){
- Util.ShowToast(runtime,"start Upload " + filepath + " to " + Config.getFtpServer(mContext) + " ...");
+ if (logfile.startsWith("SDLogInfo:")) {
+ Util.ShowToast(runtime, "start Upload " + filepath + " to " + Config.getFtpServer(mContext) + " ...");
}
String logtime = TimeUtil.getSystemTime3();
if (ftpUtils.upload(serverurl, Config.getFtpUser(mContext), Config.getFtpPWD(mContext), new File(filepath))) {
sendSMS(phonenumber, "Upload " + filepath + " to " + Config.getFtpServer(mContext) + " success!");
- if (logfile.startsWith("SDLogInfo:")){
- Util.ShowToast(runtime,"Upload " + filepath + " to " + Config.getFtpServer(mContext) + " success!");
+ if (logfile.startsWith("SDLogInfo:")) {
+ Util.ShowToast(runtime, "Upload " + filepath + " to " + Config.getFtpServer(mContext) + " success!");
}
} else {
sendSMS(phonenumber, "Upload " + filepath + " to " + Config.getFtpServer(mContext) + " failed!");
- if (logfile.startsWith("SDLogInfo:")){
- Util.ShowToast(runtime,"Upload " + filepath + " to " + Config.getFtpServer(mContext) + " failed!");
+ if (logfile.startsWith("SDLogInfo:")) {
+ Util.ShowToast(runtime, "Upload " + filepath + " to " + Config.getFtpServer(mContext) + " failed!");
}
}
} else {
- if (ICHttpUtil.uploadFile(filepath, runtime, logtime,mHandler)) {
+ if (ICHttpUtil.uploadFile(filepath, runtime, logtime, mHandler)) {
// sendSMS(phonenumber, "Upload " + filepath + " to " + Config.getFtpServer(mContext) + " success!");
// if (logfile.startsWith("SDLogInfo:")){
// Util.ShowToast(runtime,"Upload " + filepath + " to " + Config.getFtpServer(mContext) + " success!");
}
} else {
sendSMS(phonenumber, filepath + " not exist !");
- if (logfile.startsWith("SDLogInfo:")){
- Util.ShowToast(runtime,filepath + " not exist !");
+ if (logfile.startsWith("SDLogInfo:")) {
+ Util.ShowToast(runtime, filepath + " not exist !");
}
}
}
}, 500);
- }else{
- sendSMS(phonenumber, " SDLog format error !");
+ } else {
+ sendSMS(phonenumber, " SDLog format error !");
}
- }else{
+ } else {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
String filepath = Util.getLogfilePath(runtime, logfile);
URL serverurl = null;
try {
- serverurl = new URL(Util.getServerLogfilePath(Config.getFtpServer(mContext), TimeUtil.getSystemTime3(), logfile,runtime));
+ serverurl = new URL(Util.getServerLogfilePath(Config.getFtpServer(mContext), TimeUtil.getSystemTime3(), logfile, runtime));
} catch (MalformedURLException e) {
e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
+ ICLogger.e(e.getMessage(), e);
}
if (Util.LogfileExist(runtime, logfile)) {
Util.getDBFile();
- sendSMS(phonenumber, "start Upload " + logfile + " to " + Config.getFtpServer(mContext) +" ...");
- String logtime=TimeUtil.getSystemTime3();
+ sendSMS(phonenumber, "start Upload " + logfile + " to " + Config.getFtpServer(mContext) + " ...");
+ String logtime = TimeUtil.getSystemTime3();
if (upload_logs_via_ftp) {
if (ftpUtils.upload(serverurl, Config.getFtpUser(mContext), Config.getFtpPWD(mContext), new File(filepath))) {
} else {
sendSMS(phonenumber, "Upload " + logfile + " to " + Config.getFtpServer(mContext) + " failed!");
}
- }else{
- if (ICHttpUtil.uploadFile(filepath,runtime,logtime,mHandler)) {
+ } else {
+ if (ICHttpUtil.uploadFile(filepath, runtime, logtime, mHandler)) {
// sendSMS(phonenumber, "Upload " + logfile + " to " + Config.getFtpServer(mContext) + " success!");
} else {
// sendSMS(phonenumber, "Upload " + logfile + " to " + Config.getFtpServer(mContext) + " failed!");
// sendSMS(phonenumber, "upload FtpLogServer to " + Config.getFtpServer(mContext) + ", user " + Config.getFtpUser(mContext) + ", pwd " + Config.getFtpPWD(mContext));
- }else{
+ } else {
sendSMS(phonenumber, "upload logfile format error!");
}
} else {
String cmdl[] = tmp[1].split(",");
if (cmdl.length == 3) {
- Config.setFtpServer(mContext,cmdl[0]);
- Config.setFtpUser(mContext,cmdl[1]);
- Config.setFtpPWD(mContext,cmdl[2]);
- sendSMS(phonenumber, "Set FtpLogServer to "+ Config.getFtpServer(mContext)+ ", user "+Config.getFtpUser(mContext)+", pwd "+Config.getFtpPWD(mContext));
+ Config.setFtpServer(mContext, cmdl[0]);
+ Config.setFtpUser(mContext, cmdl[1]);
+ Config.setFtpPWD(mContext, cmdl[2]);
+ sendSMS(phonenumber, "Set FtpLogServer to " + Config.getFtpServer(mContext) + ", user " + Config.getFtpUser(mContext) + ", pwd " + Config.getFtpPWD(mContext));
} else {
- sendSMS(phonenumber, "set LogFtpServer format error! "+sms);
+ sendSMS(phonenumber, "set LogFtpServer format error! " + sms);
}
}
} else {
- sendSMS(phonenumber, "set LogFtp ctl format error! "+sms);
+ sendSMS(phonenumber, "set LogFtp ctl format error! " + sms);
}
- }else if (sms.startsWith(ENCRYPED_HEADER+"#TP#=")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#TP#=")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
if (tmp[1].equals("getver")) {
- if (Util.is_FT6236U_upgrade_firmware_support()){
+ if (Util.is_FT6236U_upgrade_firmware_support()) {
Util.FT6236U_getVer();
- String ver=Util.FT6236U_getVer();
- sendSMS(phonenumber, " Current FT6236U Firmware Version is "+ver+"!");
- }else {
+ String ver = Util.FT6236U_getVer();
+ sendSMS(phonenumber, " Current FT6236U Firmware Version is " + ver + "!");
+ } else {
sendSMS(phonenumber, " system Not Support FT6236U upgrade Firmware!");
}
} else if (tmp[1].equals("upgrade")) {
- if (Util.is_FT6236U_upgrade_firmware_support()){
+ if (Util.is_FT6236U_upgrade_firmware_support()) {
Util.FT6236U_getVer();
- String ver=Util.FT6236U_getVer();
+ String ver = Util.FT6236U_getVer();
if (ver.startsWith("A1")) {
if (Util.FT6236U_upgrade_firmware()) {
Util.FT6236U_getVer();
} else {
sendSMS(phonenumber, " FT6236U Firmware upgrade failed !");
}
- }else{
- sendSMS(phonenumber, " FT6236U current Firmware version is "+ver+" , upgrade only support A1 to A3 !");
+ } else {
+ sendSMS(phonenumber, " FT6236U current Firmware version is " + ver + " , upgrade only support A1 to A3 !");
}
- }else {
+ } else {
sendSMS(phonenumber, " system Not Support FT6236U upgrade Firmware!");
}
} else {
} else {
sendSMS(phonenumber, "TP cmd format error!");
}
- }else if (sms.startsWith(ENCRYPED_HEADER+"#USB#=")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#USB#=")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
- if(tmp[1].equals("current"))
- {
- String conf= Util.getSystemProperties("sys.usb.config");
- sendSMS(phonenumber, "Current USB config is "+conf+"!");
- }else if(tmp[1].equals("mtp")||tmp[1].equals("adb")||tmp[1].equals("mtp,adb")||tmp[1].equals("adb,mtp")||tmp[1].equals("none")) {
- sendSMS(phonenumber, "Set USB config to "+tmp[1]+"!");
+ if (tmp[1].equals("current")) {
+ String conf = Util.getSystemProperties("sys.usb.config");
+ sendSMS(phonenumber, "Current USB config is " + conf + "!");
+ } else if (tmp[1].equals("mtp") || tmp[1].equals("adb") || tmp[1].equals("mtp,adb") || tmp[1].equals("adb,mtp") || tmp[1].equals("none")) {
+ sendSMS(phonenumber, "Set USB config to " + tmp[1] + "!");
Util.setSystemProperties("sys.usb.config", "none");
Util.setSystemProperties("sys.usb.config", tmp[1]);
- }else{
+ } else {
sendSMS(phonenumber, "USB cmd format error only support current|adb|mtp|adb,mtp|mtp,adb|none !");
}
} else {
sendSMS(phonenumber, "USB cmd format error!");
}
- }else if (sms.startsWith(ENCRYPED_HEADER+"#ShowInfo#")) {
- Intent intent=new Intent();
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#ShowInfo#")) {
+ Intent intent = new Intent();
ComponentName var3 = new ComponentName("com.enqualcomm.support", "com.enqualcomm.support.DeviceInfoActivity");
intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
intent.setComponent(var3);
runtime.getContextProxy().context.startActivity(intent);
- }else if (sms.startsWith(ENCRYPED_HEADER+"#FactoryResetCheckSim#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#FactoryResetCheckSim#")) {
sendSMS(phonenumber, "do FactoryResetCheckSim ok!");
CoreService.DevliverStringMessage("FactoryResetCheckSim");
- }else if (sms.startsWith(ENCRYPED_HEADER+"#poweroffCheckSim#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#poweroffCheckSim#")) {
sendSMS(phonenumber, "do poweroffCheckSim ok!");
CoreService.DevliverStringMessage("poweroffCheckSim");
- }else if (sms.startsWith(ENCRYPED_HEADER+"#factoryreset#")|| sms.startsWith(ENCRYPED_HEADER+"#reset#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#factoryreset#") || sms.startsWith(ENCRYPED_HEADER + "#reset#")) {
sendSMS(phonenumber, "do factoryreset ok!");
CoreService.DevliverStringMessage("FactoryReset");
- }else if (sms.startsWith(ENCRYPED_HEADER+"#reboot#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#reboot#")) {
sendSMS(phonenumber, "do reboot ok!");
CoreService.DevliverStringMessage("Reboot");
- }else if (sms.startsWith(ENCRYPED_HEADER+"#poweroff#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#poweroff#")) {
sendSMS(phonenumber, "do poweroff ok!");
CoreService.DevliverStringMessage("poweroff");
- }else if (sms.startsWith(ENCRYPED_HEADER+"#packagevers#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#packagevers#")) {
sendSMS(phonenumber, DeviceInfoUtil.getPackageVersions(mContext));
- }else if (sms.startsWith(ENCRYPED_HEADER+"#getWeather#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#getWeather#")) {
sendSMS(phonenumber, "do get Weather!");
CoreService.DevliverStringMessage("getWeather");
- } else if (sms.startsWith(ENCRYPED_HEADER+"#showui#")) {
- Util.setSystemProperties("persist.sys.debugprotocol","true");
- Intent intent=new Intent();
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#showui#")) {
+ Util.setSystemProperties("persist.sys.debugprotocol", "true");
+ Intent intent = new Intent();
// intent.setClassName(MainActivity.class.getPackage().getName(),MainActivity.class.getName());
- intent.setClass(mContext,MainActivity.class);
+ intent.setClass(mContext, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
- } else if (sms.startsWith(ENCRYPED_HEADER+"#PW=")&& sms.endsWith("#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#PW=") && sms.endsWith("#")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
- if(tmp[1].equals(Config.DefaultSMSPassword+"#"))
- {
- Config.setSMSPwd(mContext,Config.DefaultSMSPassword);
+ if (tmp[1].equals(Config.DefaultSMSPassword + "#")) {
+ Config.setSMSPwd(mContext, Config.DefaultSMSPassword);
sendSMS(phonenumber, "Cancel SMS PW ok!");
- }else{
- Config.setSMSPwd(mContext,tmp[1].replace("#",""));
- sendSMS(phonenumber, "SET SMS PW ok "+Config.getSMSPwd(mContext));
+ } else {
+ Config.setSMSPwd(mContext, tmp[1].replace("#", ""));
+ sendSMS(phonenumber, "SET SMS PW ok " + Config.getSMSPwd(mContext));
}
} else {
sendSMS(phonenumber, "set SMSCMD PWD format error!");
}
- } else if (sms.startsWith(ENCRYPED_HEADER+"#sos=")&& sms.endsWith("#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#sos=") && sms.endsWith("#")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
- String str_sosNums=tmp[1].replace("#","");
- String[] soslist=str_sosNums.split(";");
- if (soslist.length>=1 && soslist.length<=3 ) {
+ String str_sosNums = tmp[1].replace("#", "");
+ String[] soslist = str_sosNums.split(";");
+ if (soslist.length >= 1 && soslist.length <= 3) {
String phNum1 = soslist[0];
- String phNum2 ="";
+ String phNum2 = "";
String phNum3 = "";
- if (soslist.length>1) phNum2=soslist[1];
- if (soslist.length>2) phNum3=soslist[2];
+ if (soslist.length > 1) phNum2 = soslist[1];
+ if (soslist.length > 2) phNum3 = soslist[2];
- ArrayList<Contact> contactArray=new ArrayList<Contact>();
- if (!phNum1.isEmpty()) contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos1",phNum1));
- if (!phNum2.isEmpty()) contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos2",phNum2));
- if (!phNum3.isEmpty()) contactArray.add(new Contact(Contact.CATEGORY_SOS,"sos3",phNum3));
+ ArrayList<Contact> contactArray = new ArrayList<Contact>();
+ if (!phNum1.isEmpty())
+ contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", phNum1));
+ if (!phNum2.isEmpty())
+ contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum2));
+ if (!phNum3.isEmpty())
+ contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum3));
- runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);
+ runtime.getDbHelper().saveContacts(contactArray, false, false, false, false, false, true);
sendSMS(phonenumber, "set SOS number ok!");
- }else{
+ } else {
sendSMS(phonenumber, "set SOS number format Error!");
}
} else {
sendSMS(phonenumber, "set SMSCMD PWD format error!");
}
- } else if (sms.equals(ENCRYPED_HEADER+"#listen#")) {
+ } else if (sms.equals(ENCRYPED_HEADER + "#listen#")) {
sendSMS(phonenumber, "start listen !");
// CellInfoUtil.dialSilent(runtime.getContextProxy().context,phonenumber);
- ICAudioManager.needMute=true;
+ ICAudioManager.needMute = true;
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
- SimSignalUtil.send_at_cmd(runtime,"atd"+phonenumber+";");
+ SimSignalUtil.send_at_cmd(runtime, "atd" + phonenumber + ";");
}
}, 2000);
- } else if (sms.equals(ENCRYPED_HEADER+"#location#")) {
+ } else if (sms.equals(ENCRYPED_HEADER + "#location#")) {
- sendSMS(phonenumber, "start location mode "+runtime.getLocationInstance().getWorkingMod()+"!");
- cell_number_to_reply=phonenumber;
- LocationClient locationClient=LocationClient.getInstance();
- if (locationClient!=null){
+ sendSMS(phonenumber, "start location mode " + runtime.getLocationInstance().getWorkingMod() + "!");
+ cell_number_to_reply = phonenumber;
+ LocationClient locationClient = LocationClient.getInstance();
+ if (locationClient != null) {
locationClient.setLocationResponse(replayLocation);
ICLogger.i("triggerLocationProcess ");
locationClient.triggerLocationProcess();
}
- }else if (sms.startsWith(ENCRYPED_HEADER+"#setLogSrv#=")&& sms.endsWith("#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#setLogSrv#=") && sms.endsWith("#")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
- String strtmp=tmp[1].replace("#","");
+ String strtmp = tmp[1].replace("#", "");
- if (strtmp.contains("/")){
+ if (strtmp.contains("/")) {
/* #setLogSrv#=http://icfota.snicker.com.cn:8089/UploadFile.jsp*/
- Config.setLogServerIP(mContext,strtmp,8089);
- sendSMS(phonenumber, "set setLogSrv to "+strtmp+"!");
- }else {
+ Config.setLogServerIP(mContext, strtmp, 8089);
+ sendSMS(phonenumber, "set setLogSrv to " + strtmp + "!");
+ } else {
/* #setLogSrv#=icfota.snicker.com.cn:8089 */
- String[] ipstr = strtmp.split(":");
+ String[] ipstr = strtmp.split(":");
if (ipstr.length == 2) {
String ip = ipstr[0];
int port = Integer.valueOf(ipstr[1].replace("#", ""));
- Config.setLogServerIP(mContext,ip,port);
- sendSMS(phonenumber, "set setLogSrv to "+strtmp+"!");
+ Config.setLogServerIP(mContext, ip, port);
+ sendSMS(phonenumber, "set setLogSrv to " + strtmp + "!");
} else {
sendSMS(phonenumber, " setLogSrv cmd Format error!");
}
} else {
sendSMS(phonenumber, " setLogSrv cmd Format error!");
}
- }else if (sms.startsWith(ENCRYPED_HEADER+"#setFotaSrv#=")&& sms.endsWith("#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#setFotaSrv#=") && sms.endsWith("#")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
- String strtmp=tmp[1].replace("#","");
- Config.setFotaServerUrl(mContext,strtmp);
- Util.setSystemProperties(Constants.PersistFotaServer2Url,strtmp);
- sendSMS(phonenumber, "set setFotaSrv2 to "+strtmp+"!");
+ String strtmp = tmp[1].replace("#", "");
+ Config.setFotaServerUrl(mContext, strtmp);
+ Util.setSystemProperties(Constants.PersistFotaServer2Url, strtmp);
+ sendSMS(phonenumber, "set setFotaSrv2 to " + strtmp + "!");
} else {
sendSMS(phonenumber, " setFotaSrv cmd Format error!");
}
- } else if (sms.equals(ENCRYPED_HEADER+"#FotaUpdate#")) {
+ } else if (sms.equals(ENCRYPED_HEADER + "#FotaUpdate#")) {
- cell_number_to_reply=phonenumber;
+ cell_number_to_reply = phonenumber;
broadCastStartFotaUpdate(mContext);
sendSMS(phonenumber, "start fota update !");
- } else if (sms.equals(ENCRYPED_HEADER+"#FotaUpdateWiFi#=")){
+ } else if (sms.equals(ENCRYPED_HEADER + "#FotaUpdateWiFi#=")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
- String tmplist[]=tmp[1].split(",");
- if (tmplist.length==3){
-
- String SSID=tmplist[0];
- String PWD=tmplist[1];
- String encyptType=tmplist[2];
- Config.setWiFiSSID(mContext,SSID);
- Config.setWiFiPasswd(mContext,PWD);
+ String tmplist[] = tmp[1].split(",");
+ if (tmplist.length == 3) {
+
+ String SSID = tmplist[0];
+ String PWD = tmplist[1];
+ String encyptType = tmplist[2];
+ Config.setWiFiSSID(mContext, SSID);
+ Config.setWiFiPasswd(mContext, PWD);
runtime.setNoTurnOffOnScreenOff(true);
- StringBuilder sb=new StringBuilder();
- if ( !Util.isWifiIsOpen(runtime.getContextProxy().context,runtime)){
- Util.turnOnWifiForConnect(runtime.getContextProxy().context,runtime);
+ StringBuilder sb = new StringBuilder();
+ if (!Util.isWifiIsOpen(runtime.getContextProxy().context, runtime)) {
+ Util.turnOnWifiForConnect(runtime.getContextProxy().context, runtime);
}
- sb.append("connect to Wifi SSID " + Config.getWiFiSSID(mContext) +", WiFiPassword "+Config.getWiFiPasswd(mContext)+ ", encryptType "+encyptType+"!");
+ sb.append("connect to Wifi SSID " + Config.getWiFiSSID(mContext) + ", WiFiPassword " + Config.getWiFiPasswd(mContext) + ", encryptType " + encyptType + "!");
sb.append(" And start to Update");
- cell_number_to_reply=phonenumber;
+ cell_number_to_reply = phonenumber;
sendSMS(phonenumber, sb.toString());
//connect to wifi
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
- Deliver.connectToWifi(SSID,PWD,encyptType);
+ Deliver.connectToWifi(SSID, PWD, encyptType);
broadCastStartFotaUpdate(mContext);
}
}, 500);
- }else {
+ } else {
sendSMS(phonenumber, "FotaUpdateWiFi Control format error!");
}
} else {
}
- }else if (sms.startsWith(ENCRYPED_HEADER+"#nolocationcycle#=")&& sms.endsWith("#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#nolocationcycle#=") && sms.endsWith("#")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
- String strtmp=tmp[1].replace("#","");
- if (strtmp.equalsIgnoreCase("false")){
- Util.setSystemProperties("persist.sys.NoLocationCycle","false");
+ String strtmp = tmp[1].replace("#", "");
+ if (strtmp.equalsIgnoreCase("false")) {
+ Util.setSystemProperties("persist.sys.NoLocationCycle", "false");
Config.getNoLocationCycleFlag();
sendSMS(phonenumber, "set noLocationCycle false! and trigger one Location");
- LocationClient locationClient=LocationClient.getInstance();
- if (locationClient!=null){
+ LocationClient locationClient = LocationClient.getInstance();
+ if (locationClient != null) {
ICLogger.i("triggerLocationProcess ");
locationClient.triggerLocationProcess();
}
- }else if (strtmp.equalsIgnoreCase("true")){
- Util.setSystemProperties("persist.sys.NoLocationCycle","true");
+ } else if (strtmp.equalsIgnoreCase("true")) {
+ Util.setSystemProperties("persist.sys.NoLocationCycle", "true");
Config.getNoLocationCycleFlag();
sendSMS(phonenumber, "set noLocationCycle true!");
- }else if (strtmp.equalsIgnoreCase("current")){
- sendSMS(phonenumber, "current noLocationCycle "+Config.getNoLocationCycleFlag()+"!");
- }else {
+ } else if (strtmp.equalsIgnoreCase("current")) {
+ sendSMS(phonenumber, "current noLocationCycle " + Config.getNoLocationCycleFlag() + "!");
+ } else {
sendSMS(phonenumber, " nolocationcycle cmd Format error!");
}
} else {
sendSMS(phonenumber, " nolocationcycle cmd Format error!");
}
- }else if (sms.startsWith(ENCRYPED_HEADER+"#setprotocol#=")&& sms.endsWith("#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#setprotocol#=") && sms.endsWith("#")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
- String strtmp=tmp[1].replace("#","");
- if (strtmp.equalsIgnoreCase("beehome")){
- if(Config.protocol_no!=Config.PROTOCOL_BEEHOME) {
+ String strtmp = tmp[1].replace("#", "");
+ if (strtmp.equalsIgnoreCase("beehome")) {
+ if (Config.protocol_no != Config.PROTOCOL_BEEHOME) {
Util.setSystemProperties("persist.sys.protocol_no", "1");
Config.getProtocolNumber();
- Config.setCustomServer(mContext,false,protocolAPIHelper.getDefaultServerIP(),protocolAPIHelper.getDefaultServerPort());
+ Config.setCustomServer(mContext, false, protocolAPIHelper.getDefaultServerIP(), protocolAPIHelper.getDefaultServerPort());
Config.loadServerSettings(runtime);
sendSMS(phonenumber, "set setprotocol to Beehome Protocol! device will reboot later !");
CoreService.DevliverStringMessage("Reboot");
// CoreService.getInstance().disconnect_server();
// CoreService.getInstance().ReConnectToServer();
- }else{
+ } else {
sendSMS(phonenumber, "current is Beehome Protocol!");
}
- }else if(strtmp.equalsIgnoreCase("jiai")){
- if(Config.protocol_no!=Config.PROTOCOL_JIAI) {
+ } else if (strtmp.equalsIgnoreCase("jiai")) {
+ if (Config.protocol_no != Config.PROTOCOL_JIAI) {
Util.setSystemProperties("persist.sys.protocol_no", "0");
Config.getProtocolNumber();
- Config.setCustomServer(mContext,false,protocolAPIHelper.getDefaultServerIP(),protocolAPIHelper.getDefaultServerPort());
+ Config.setCustomServer(mContext, false, protocolAPIHelper.getDefaultServerIP(), protocolAPIHelper.getDefaultServerPort());
Config.loadServerSettings(runtime);
sendSMS(phonenumber, "set setprotocol to JiAi Protocol! device will reboot later !");
CoreService.DevliverStringMessage("Reboot");
// CoreService.getInstance().disconnect_server();
// CoreService.getInstance().ReConnectToServer();
- }else
- {
+ } else {
sendSMS(phonenumber, "current is JiAi Protocol!");
}
- }else if(strtmp.equalsIgnoreCase("ic")){
- if(Config.protocol_no!=Config.PROTOCOL_IC) {
+ } else if (strtmp.equalsIgnoreCase("ic")) {
+ if (Config.protocol_no != Config.PROTOCOL_IC) {
Util.setSystemProperties("persist.sys.protocol_no", "2");
Config.getProtocolNumber();
- Config.setCustomServer(mContext,false,protocolAPIHelper.getDefaultServerIP(),protocolAPIHelper.getDefaultServerPort());
+ Config.setCustomServer(mContext, false, protocolAPIHelper.getDefaultServerIP(), protocolAPIHelper.getDefaultServerPort());
Config.loadServerSettings(runtime);
sendSMS(phonenumber, "set setprotocol to IC Protocol! device will reboot later !");
CoreService.DevliverStringMessage("Reboot");
// CoreService.getInstance().disconnect_server();
// CoreService.getInstance().ReConnectToServer();
- }else
- {
+ } else {
sendSMS(phonenumber, "current is IC Protocol!");
}
- }else if(strtmp.equalsIgnoreCase("fzd")){
- if(Config.protocol_no!=Config.PROTOCOL_FZD) {
+ } else if (strtmp.equalsIgnoreCase("fzd")) {
+ if (Config.protocol_no != Config.PROTOCOL_FZD) {
Util.setSystemProperties("persist.sys.protocol_no", "3");
Config.getProtocolNumber();
- Config.setCustomServer(mContext,false,protocolAPIHelper.getDefaultServerIP(),protocolAPIHelper.getDefaultServerPort());
+ Config.setCustomServer(mContext, false, protocolAPIHelper.getDefaultServerIP(), protocolAPIHelper.getDefaultServerPort());
Config.loadServerSettings(runtime);
sendSMS(phonenumber, "set setprotocol to fzd Protocol! device will reboot later !");
CoreService.DevliverStringMessage("Reboot");
// CoreService.getInstance().disconnect_server();
// CoreService.getInstance().ReConnectToServer();
- }else
- {
+ } else {
sendSMS(phonenumber, "current is fzd Protocol!");
}
- }else if(strtmp.equalsIgnoreCase("mqtt")){
- if(Config.protocol_no!=Config.PROTOCOL_MQTT) {
+ } else if (strtmp.equalsIgnoreCase("mqtt")) {
+ if (Config.protocol_no != Config.PROTOCOL_MQTT) {
Util.setSystemProperties("persist.sys.protocol_no", "4");
Config.getProtocolNumber();
- Config.setCustomServer(mContext,false,protocolAPIHelper.getDefaultServerIP(),protocolAPIHelper.getDefaultServerPort());
+ Config.setCustomServer(mContext, false, protocolAPIHelper.getDefaultServerIP(), protocolAPIHelper.getDefaultServerPort());
Config.loadServerSettings(runtime);
sendSMS(phonenumber, "set setprotocol to mqtt Protocol! device will reboot later !");
CoreService.DevliverStringMessage("Reboot");
// CoreService.getInstance().disconnect_server();
// CoreService.getInstance().ReConnectToServer();
- }else
- {
+ } else {
sendSMS(phonenumber, "current is mqtt Protocol!");
}
- }else if(TextUtils.isDigitsOnly(strtmp)) {
- int protocolno=Integer.parseInt(strtmp);
+ } else if (TextUtils.isDigitsOnly(strtmp)) {
+ int protocolno = Integer.parseInt(strtmp);
switch (protocolno) {
case 0:
case 1:
Util.setSystemProperties("persist.sys.protocol_no", strtmp);
Config.getProtocolNumber();
Config.loadServerSettings(runtime);
- sendSMS(phonenumber, "set setprotocol to Protocol"+protocolno+"! \r\nYou may also need to set server ip for this protocol !\r\n May need reboot device too.");
+ sendSMS(phonenumber, "set setprotocol to Protocol" + protocolno + "! \r\nYou may also need to set server ip for this protocol !\r\n May need reboot device too.");
CoreService.getInstance().disconnect_server();
CoreService.getInstance().ReConnectToServer();
- break;
+ break;
default:
sendSMS(phonenumber, "setprotocol only support Protocol 0/1/2/3/4 by now! ");
break;
}
- }else{
+ } else {
sendSMS(phonenumber, " only support protocol jiAi , ic , beehome , fzd , mqtt !");
}
} else {
sendSMS(phonenumber, " setprotocol cmd Format error!");
}
- }else if(sms.startsWith(ENCRYPED_HEADER+"#maillog#=")){
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#maillog#=")) {
String tmp[] = sms.split("=");
if (tmp.length == 2) {
- String mailaddr=tmp[1];
- if (!mailaddr.contains("@"))
- {
+ String mailaddr = tmp[1];
+ if (!mailaddr.contains("@")) {
sendSMS(phonenumber, "mail address error !");
- }else {
+ } else {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (new File(logfile).exists()) {
sendSMS(phonenumber, "mail " + fileOrDir + " to " + mailaddr + " ...");
- Util.ShowToast(runtime,"mail " + fileOrDir + " to " + mailaddr + " ...");
+ Util.ShowToast(runtime, "mail " + fileOrDir + " to " + mailaddr + " ...");
String logtime = TimeUtil.getSystemTime3();
- if (SendEmail.getInstance().sendLogViaMail(logfile,mailaddr, logtime)) {
+ if (SendEmail.getInstance().sendLogViaMail(logfile, mailaddr, logtime)) {
sendSMS(phonenumber, "mail " + fileOrDir + " to " + mailaddr + " success!");
// Util.ShowToast(runtime,"mail " + fileOrDir + " to " + mailaddr + " success!");
} else {
}
-
}, 500);
}
// sendSMS(phonenumber, "upload FtpLogServer to " + Config.getFtpServer(mContext) + ", user " + Config.getFtpUser(mContext) + ", pwd " + Config.getFtpPWD(mContext));
- }else{
- sendSMS(phonenumber, "upload logfile format error!");
- }
+ } else {
+ sendSMS(phonenumber, "upload logfile format error!");
+ }
- }else if(sms.startsWith(ENCRYPED_HEADER+"#capture#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#capture#")) {
mHandler.post(new Runnable() {
- @Override
- public void run() {
- (new CameraUtil(mContext)).getPictur("capture"+TimeUtil.getSystemTime3());
- }
- });
+ @Override
+ public void run() {
+ (new CameraUtil(mContext)).getPictur("capture" + TimeUtil.getSystemTime3());
+ }
+ });
- }else if(sms.startsWith(ENCRYPED_HEADER+"#monitor#")) {
+ } else if (sms.startsWith(ENCRYPED_HEADER + "#monitor#")) {
mHandler.post(new Runnable() {
@Override
public void run() {
- CoreService.getInstance().DevliverStringMessage("StartMonitor","10");
+ CoreService.getInstance().DevliverStringMessage("StartMonitor", "10");
}
});
* 。。。。。
* 添加新命令道这里
*/
- }else {
+ } else {
return false;
}
return true;
- }else{
+ } else {
return false;
}
}
+
public final Uri SMS_MESSAGE_URI = Uri.parse("content://sms");
private SmsDatabaseChaneObserver mSmsDBChangeObserver;
+
private void registerSmsDatabaseChangeObserver(Context contextWrapper) {
//因为,某些机型修改rom导致没有getContentResolver
try {
mSmsDBChangeObserver = new SmsDatabaseChaneObserver(contextWrapper.getContentResolver(), mHandler);
contextWrapper.getContentResolver().registerContentObserver(SMS_MESSAGE_URI, true, mSmsDBChangeObserver);
} catch (Throwable e) {
- ICLogger.e(e.getMessage(),e);
+ ICLogger.e(e.getMessage(), e);
}
}
}
- private void handle_test_cmd(String cmd,String arg){
+ private void handle_test_cmd(String cmd, String arg) {
- ICLogger.i("receive test Cmd "+cmd+" arg "+arg);
- if(cmd.startsWith("testDialog,")) {
- String list[]=cmd.split(",");
- int msgtype=0;
+ ICLogger.i("receive test Cmd " + cmd + " arg " + arg);
+ if (cmd.startsWith("testDialog,")) {
+ String list[] = cmd.split(",");
+ int msgtype = 0;
try {
msgtype = Integer.parseInt(list[1]);
- }catch ( Exception e){}
- if(CoreService.getInstance()!=null)
- CoreService.getInstance().getRuntime().getContextProxy().sendMsgBroadcast(arg, msgtype);
- }else if(cmd.startsWith("playnotifiy")) {
+ } catch (Exception e) {
+ }
+ if (CoreService.getInstance() != null)
+ CoreService.getInstance().getRuntime().getContextProxy().sendMsgBroadcast(arg, msgtype);
+ } else if (cmd.startsWith("playnotifiy")) {
AudioService.getInstance().play(runtime.getContextProxy().context.getAssets(), "ring_msg.mp3");
VibrateUtil.getInstance(runtime.getContextProxy().context).VibrateOn(true);
- }else if(cmd.startsWith("DeliverSMS")) {
+ } else if (cmd.startsWith("DeliverSMS")) {
- if(CoreService.getInstance()!=null){
- Deliver.sendLocationMSG(protocolAPIHelper.getLBSLocationMSG(runtime));
- }
+ if (CoreService.getInstance() != null) {
+ Deliver.sendLocationMSG(protocolAPIHelper.getLBSLocationMSG(runtime));
+ }
- }else if(cmd.startsWith("resetsim")) {
+ } else if (cmd.startsWith("resetsim")) {
- if(CoreService.getInstance()!=null){
+ if (CoreService.getInstance() != null) {
SimSignalUtil.send_at_to_reset_simcard(CoreService.getInstance().runtime);
}
- }else if(cmd.startsWith("airplane")) {
+ } else if (cmd.startsWith("airplane")) {
- if(CoreService.getInstance()!=null){
+ if (CoreService.getInstance() != null) {
SimSignalUtil.send_at_to_reset_simcard(runtime); //直接下此命令不能实现断网重连,所以干脆采用关闭网络再打开的方式。
SimSignalUtil.setAirMode(CoreService.getInstance(), "OpenAirplane");
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
- SimSignalUtil.setAirMode(CoreService.getInstance(),"CloseAirplane");
+ SimSignalUtil.setAirMode(CoreService.getInstance(), "CloseAirplane");
}
- },5000);
+ }, 5000);
}
- }else if(cmd.startsWith("testCMDRecords")) {
+ } else if (cmd.startsWith("testCMDRecords")) {
- if(CoreService.getInstance()!=null){
- StringMessage msg=protocolAPIHelper.getLBSLocationMSG(runtime);
+ if (CoreService.getInstance() != null) {
+ StringMessage msg = protocolAPIHelper.getLBSLocationMSG(runtime);
runtime.getDbHelper().insertCMDRecord(msg);
Deliver.dumpMessage(msg);
Util.mSleep(2000);
- msg=protocolAPIHelper.getLBSLocationMSG(runtime);
+ msg = protocolAPIHelper.getLBSLocationMSG(runtime);
runtime.getDbHelper().insertCMDRecord(msg);
Deliver.dumpMessage(msg);
Util.mSleep(2000);
- msg=protocolAPIHelper.getLBSLocationMSG(runtime);
+ msg = protocolAPIHelper.getLBSLocationMSG(runtime);
runtime.getDbHelper().insertCMDRecord(msg);
Deliver.dumpMessage(msg);
*/
}
- }else if(cmd.startsWith("testBT1")) {
+ } else if (cmd.startsWith("testBT1")) {
- if(CoreService.getInstance()!=null)
+ if (CoreService.getInstance() != null)
CoreService.getInstance().setBleScanAlarm(20);
+ } else if (cmd.startsWith("BPLA,")) {
- }else if(cmd.startsWith("BPLA,")) {
-
- String list[]=cmd.split(",");
- if(list.length==2){
+ String list[] = cmd.split(",");
+ if (list.length == 2) {
- LanguageUtils.changeLanguageByIndex(mContext,list[1]);
+ LanguageUtils.changeLanguageByIndex(mContext, list[1]);
}
-
}
}
}
\ No newline at end of file
}
});
- mhandler = new Handler(EventLooperHandlerThread.makeLooper(LocationClient.class.getSimpleName()),locationCallback);
+ mhandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper(), locationCallback);
btHelper.setBLEScanTimeout(OneBLEScanTimeOUT);
gLocationCline = this;
//GPS 监听管理初始化
}
public interface LocationResponseUrl {
- abstract public void replyCallBack(String locationResponseUrl);
+ void replyCallBack(String locationResponseUrl);
}
- ;
-
private void handler2GTo4G() {
int networktype = this.mSignalUtil.getNetworkType();
int singal = runtime.getSignalStrength();
return false;
}
};
- Handler mhandler ;
+ Handler mhandler;
boolean wifi_ok = false, gps_ok = false, lbs_ok = false, gps_nosignal = false;
package com.enqualcomm.support;
-import android.content.Context;
import android.location.Criteria;
-import android.location.GpsSatellite;
-import android.location.GpsStatus;
import android.location.GpsStatus.NmeaListener;
-
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
-import android.os.Message;
import android.provider.Settings;
import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.bean.ICLocation;
+import com.enqualcomm.support.bean.ICLocation.GPS_locationStatus;
import com.enqualcomm.support.bean.Runtime;
-import com.enqualcomm.support.utils.FileOutputUtil;
import com.enqualcomm.support.utils.ICLogger;
import com.enqualcomm.support.utils.TimeUtil;
-import com.enqualcomm.support.bean.ICLocation.GPS_locationStatus;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import rx.Single;
-import rx.android.schedulers.AndroidSchedulers;
-import rx.functions.Action1;
+import java.text.DecimalFormat;
import static android.location.LocationManager.GPS_PROVIDER;
public class NMEAListener implements NmeaListener, LocationListener {
- private static boolean listening = false;
+ private static boolean listening = false;
- public boolean isListening() {
- return listening;
- }
+ public boolean isListening() {
+ return listening;
+ }
- private LocationManager locationManager;
- private String locationInfo;
+ private LocationManager locationManager;
+ private String locationInfo;
- private double longitude;
- private double latitude;
+ private double longitude;
+ private double latitude;
- private boolean noStop = false;
+ private boolean noStop = false;
- private int SearchTimeout = 120;
- private int noSignalCount = 0;
- private int searchCout = 0;
- private GPS_CURRENT_STATUS gpsMode;
- int numberOfSatellites;
- Runtime runtime;
+ private int SearchTimeout = 120;
+ private int noSignalCount = 0;
+ private int searchCout = 0;
+ private GPS_CURRENT_STATUS gpsMode;
+ int numberOfSatellites;
+ Runtime runtime;
- private static int MaxFixedTimes = 3;
+ private static int MaxFixedTimes = 3;
- private static int locationFixedCount = 0;
+ private static int locationFixedCount = 0;
- private static location_callback mCallback = null;
+ private static location_callback mCallback = null;
- public interface location_callback {
- public void on_locating_changed(GPS_locationStatus gps_status);
- }
+ public interface location_callback {
+ public void on_locating_changed(GPS_locationStatus gps_status);
+ }
- public static void set_callback(location_callback callback) {
- mCallback = callback;
- }
+ public static void set_callback(location_callback callback) {
+ mCallback = callback;
+ }
- private GPS_locationStatus gps_status = new GPS_locationStatus();
+ private GPS_locationStatus gps_status = new GPS_locationStatus();
- public GPS_locationStatus get_gps_status() {
- return gps_status;
- }
+ public GPS_locationStatus get_gps_status() {
+ return gps_status;
+ }
- public void setNoStop(boolean nostop) {
- if (Config.noLocationCycle==false)
- noStop = nostop;
- else
- ICLogger.i("skip setNoStop " + nostop);
- ICLogger.i("setNoStop " + nostop);
- if (noStop == false) {
- switch (runtime.getLocationInstance().getWorkingMod()) {
- case ICLocation.CUSTOM_MOD:
- case ICLocation.CUSTOM_MOD8_GPS:
- case ICLocation.EMERGNECY_MOD:
- case ICLocation.REALTIME_MOD:
- //GPS 定位模式不关闭GPS,防止 1分钟定位超时后,重新关闭开启GPS。
- //不给GPS继续定位的机会,造成第一次定位困难!
- break;
- case ICLocation.LOWPOWER_MOD:
- case ICLocation.NORMAL_MOD:
- case ICLocation.CUSTOM_MOD8_WIFI:
- default:
- ICLogger.i("非GPS定位模式,关闭GPS");
- //非GPS定位模式的话,需要关闭GPS。
- stopListen();
- break;
- }
+ public void setNoStop(boolean nostop) {
+ if (Config.noLocationCycle == false)
+ noStop = nostop;
+ else
+ ICLogger.i("skip setNoStop " + nostop);
+ ICLogger.i("setNoStop " + nostop);
+ if (noStop == false) {
+ switch (runtime.getLocationInstance().getWorkingMod()) {
+ case ICLocation.CUSTOM_MOD:
+ case ICLocation.CUSTOM_MOD8_GPS:
+ case ICLocation.EMERGNECY_MOD:
+ case ICLocation.REALTIME_MOD:
+ //GPS 定位模式不关闭GPS,防止 1分钟定位超时后,重新关闭开启GPS。
+ //不给GPS继续定位的机会,造成第一次定位困难!
+ break;
+ case ICLocation.LOWPOWER_MOD:
+ case ICLocation.NORMAL_MOD:
+ case ICLocation.CUSTOM_MOD8_WIFI:
+ default:
+ ICLogger.i("非GPS定位模式,关闭GPS");
+ //非GPS定位模式的话,需要关闭GPS。
+ stopListen();
+ break;
+ }
+ }
}
- }
- public NMEAListener(LocationManager paramLocationManager, Runtime paramRuntime) {
- this.locationManager = paramLocationManager;
- this.runtime = paramRuntime;
+ public NMEAListener(LocationManager paramLocationManager, Runtime paramRuntime) {
+ this.locationManager = paramLocationManager;
+ this.runtime = paramRuntime;
- temHandler=new Handler(EventLooperHandlerThread.makeLooper(NMEAListener.class.getSimpleName()),new Handler.Callback() {
- @Override
- public boolean handleMessage(Message message) {
+ temHandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper(), message -> {
- if (message.what == MSG_WHAT_GPS_TIMEOUT || message.what == MSG_WHAT_GPS_NOSTAR) {
- //no start
- //do nothing
+ if (message.what == MSG_WHAT_GPS_TIMEOUT || message.what == MSG_WHAT_GPS_NOSTAR) {
+ //no start
+ //do nothing
- } else if (message.what == MSG_WHAT_GPS_FIXED) {
- //fixed
- /*
- 只有当前GPS已经定位,且location不为空才给 runtime赋值GPS坐标。
- 延迟三秒后才设置runtime的定位标志,以便稳定坐标值。
- */
- runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_FIXED);
+ } else if (message.what == MSG_WHAT_GPS_FIXED) {
+ //fixed
+ /*
+ 只有当前GPS已经定位,且location不为空才给 runtime赋值GPS坐标。
+ 延迟三秒后才设置runtime的定位标志,以便稳定坐标值。
+ */
+ runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_FIXED);
- }
+ }
- if (!noStop) {
- ICLogger.i("handleMessage MSG_WHAT_GPS_TIMEOUT/ MSG_WHAT_GPS_NOSTAR/ MSG_WHAT_GPS_FIXED " + message.what);
+ if (!noStop) {
+ ICLogger.i("handleMessage MSG_WHAT_GPS_TIMEOUT/ MSG_WHAT_GPS_NOSTAR/ MSG_WHAT_GPS_FIXED " + message.what);
- stopListen();
- }
- return true;
- }
- } );
- }
+ stopListen();
+ }
+ return true;
+ });
+ }
- static int satindex = 0;
+ static int satindex = 0;
- public void onNmeaReceived(long paramLong, String nmeastr) {
+ public void onNmeaReceived(long paramLong, String nmeastr) {
// EqcAlgorithmNative.native_EqcAlgorithmMethod5(paramString);
// ICLogger.i("Nmea :"+nmeastr+" "+paramLong);
- if (Config.LOG_TOFILE)
- ICLogger.logToFile("Nmea", nmeastr);
-
- if (nmeastr.startsWith("$RD_RSSI")) {
- //每组NMEA数据的头,只适用于 SL8521E,9820E
- gps_status.numSatelliteList.clear();
- gps_status.search_time_cost = searchCout;
- runtime.getLocationInstance().numSatelliteList.clear(); //清除 SNR >0的卫星
- runtime.getLocationInstance().max3Satellite.clear(); //清除 最大3个星值
- }
-
- if (nmeastr.startsWith("$GPVTG")) {
- //每组NMEA数据的尾,只适用于 SL8521E,9820E
- searchCout++;
- //最后一页,打印搜星情况,并作一些判断。
- StringBuilder sb = new StringBuilder();
- sb.append("搜索" + searchCout + "次,搜索到卫星个数" + gps_status.satlite_numbss + ", [SNR>0] =" + runtime.getLocationInstance().numSatelliteList.size());
- sb.append(", Max 5 SNR [");
- for (int i = 0; i < runtime.getLocationInstance().max3Satellite.size(); i++) {
- sb.append(runtime.getLocationInstance().max3Satellite.get(i).getSnr() + ",");
- }
- sb.append("]");
- if (Config.LOG_TOFILE)
- ICLogger.logToFile( "GPS", sb.toString());
-
- ICLogger.i(sb.toString());
- // 卫星总数小于2 ,或者 snr小于20
- if (runtime.getLocationInstance().numSatelliteList.size() < 3 && (runtime.getLocationInstance().max3Satellite.size() > 0 ? (runtime.getLocationInstance().max3Satellite.get(0).getSnr() < 20 ? true : false) : true)) {
- noSignalCount++;
- }else{
- noSignalCount=0;//只要有一次满足有信号,则重新开始计数。
- }
-
-
- StringBuilder sb2 = new StringBuilder();
- if (!noStop) {
- if (searchCout > ICLocation.MAX_GPS_SEARCH_TIMEOUT) {
- sb2.append(" 搜索" + searchCout + "次未定位,超过" + ICLocation.MAX_GPS_SEARCH_TIMEOUT + "限制退出GPS定位");
-
- runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_GPS_TIEMOUT);
-
- stop(MSG_WHAT_GPS_TIMEOUT);
- }
- if (noSignalCount > ICLocation.MAX_GPS_NOSIGNAL_COUNT) {
- sb2.append(" 搜索" + searchCout + "次,超过" + noSignalCount + "次没有收到星,退出GPS定位");
- runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_GPS_TIEMOUT);
- stop(MSG_WHAT_GPS_NOSTAR);
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("Nmea", nmeastr);
+
+ if (nmeastr.startsWith("$RD_RSSI")) {
+ //每组NMEA数据的头,只适用于 SL8521E,9820E
+ gps_status.numSatelliteList.clear();
+ gps_status.search_time_cost = searchCout;
+ runtime.getLocationInstance().numSatelliteList.clear(); //清除 SNR >0的卫星
+ runtime.getLocationInstance().max3Satellite.clear(); //清除 最大3个星值
}
- }
- ICLogger.i(sb2.toString());
- if (Config.LOG_TOFILE)
- ICLogger.logToFile("GPS", sb2.toString());
-
- if (mCallback != null)
- mCallback.on_locating_changed(get_gps_status());
- }
- if (nmeastr.startsWith("$GPGLL,") ||nmeastr.startsWith("$GNGLL,")) {
- String tmplist[] = nmeastr.split(",");
+ if (nmeastr.startsWith("$GPVTG")) {
+ //每组NMEA数据的尾,只适用于 SL8521E,9820E
+ searchCout++;
+ //最后一页,打印搜星情况,并作一些判断。
+ StringBuilder sb = new StringBuilder();
+ sb.append("搜索" + searchCout + "次,搜索到卫星个数" + gps_status.satlite_numbss + ", [SNR>0] =" + runtime.getLocationInstance().numSatelliteList.size());
+ sb.append(", Max 5 SNR [");
+ for (int i = 0; i < runtime.getLocationInstance().max3Satellite.size(); i++) {
+ sb.append(runtime.getLocationInstance().max3Satellite.get(i).getSnr() + ",");
+ }
+ sb.append("]");
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("GPS", sb.toString());
+
+ ICLogger.i(sb.toString());
+ // 卫星总数小于2 ,或者 snr小于20
+ if (runtime.getLocationInstance().numSatelliteList.size() < 3 && (runtime.getLocationInstance().max3Satellite.size() > 0 ? (runtime.getLocationInstance().max3Satellite.get(0).getSnr() < 20 ? true : false) : true)) {
+ noSignalCount++;
+ } else {
+ noSignalCount = 0;//只要有一次满足有信号,则重新开始计数。
+ }
+
+
+ StringBuilder sb2 = new StringBuilder();
+ if (!noStop) {
+ if (searchCout > ICLocation.MAX_GPS_SEARCH_TIMEOUT) {
+ sb2.append(" 搜索" + searchCout + "次未定位,超过" + ICLocation.MAX_GPS_SEARCH_TIMEOUT + "限制退出GPS定位");
+
+ runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_GPS_TIEMOUT);
+
+ stop(MSG_WHAT_GPS_TIMEOUT);
+ }
+ if (noSignalCount > ICLocation.MAX_GPS_NOSIGNAL_COUNT) {
+ sb2.append(" 搜索" + searchCout + "次,超过" + noSignalCount + "次没有收到星,退出GPS定位");
+ runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_GPS_TIEMOUT);
+ stop(MSG_WHAT_GPS_NOSTAR);
+ }
+ }
+ ICLogger.i(sb2.toString());
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("GPS", sb2.toString());
+
+
+ if (mCallback != null)
+ mCallback.on_locating_changed(get_gps_status());
+ }
+ if (nmeastr.startsWith("$GPGLL,") || nmeastr.startsWith("$GNGLL,")) {
+ String tmplist[] = nmeastr.split(",");
// GPGLL编辑
//(地理定位信息)
// 例:$GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2D
// 字段5:UTC时间,hhmmss.sss格式
// 字段6:状态,A=定位,V=未定位
// 字段7:校验值($与*之间的数异或后的值)
- String Lat = tmplist[1];
- String lon = tmplist[3];
- String fixed = tmplist[6];
+ String Lat = tmplist[1];
+ String lon = tmplist[3];
+ String fixed = tmplist[6];
// ICLogger.i("GPGLL Lat="+Lat+",Lon="+lon+",fixed="+fixed);
- } else if (nmeastr.startsWith("$GPRMC,")||nmeastr.startsWith("$GNRMC,")) {
+ } else if (nmeastr.startsWith("$GPRMC,") || nmeastr.startsWith("$GNRMC,")) {
// GPRMC编辑
//(推荐定位信息数据格式)
// 例:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50
// 字段11:磁偏角方向,E=东W=西
// 字段12:模式,A=自动,D=差分,E=估测,N=数据无效(3.0协议内容)
// 字段13:校验值($与*之间的数异或后的值)
- String tmplist[] = nmeastr.split(",");
- String utctime = tmplist[1];
- String Lat = tmplist[3];
- String lon = tmplist[5];
- String fixed = tmplist[2];
- String speed = tmplist[7];
+ String tmplist[] = nmeastr.split(",");
+ String utctime = tmplist[1];
+ String Lat = tmplist[3];
+ String lon = tmplist[5];
+ String fixed = tmplist[2];
+ String speed = tmplist[7];
// ICLogger.i("GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed);
// if (Config.LOG_TOFILE)
// FileOutputUtil.fileOutput(this.runtime.getCacheDir(), "GPS", "GPRMC GPSTime="+utctime+",Lat="+Lat+",Lon="+lon+",fixed="+fixed+",speed="+speed);
- if (fixed.trim().equals("A")) {
- if (speed.trim().isEmpty()) speed = "0.0";
- runtime.getLocationInstance().setSpeed(Float.valueOf(speed));
- }
+ if (fixed.trim().equals("A")) {
+ if (speed.trim().isEmpty()) speed = "0.0";
+ runtime.getLocationInstance().setSpeed(Float.valueOf(speed));
+ }
- } else if (nmeastr.startsWith("$GPGSV,")||nmeastr.startsWith("$GLGSV,")||nmeastr.startsWith("$GAGSV,")||nmeastr.startsWith("$GBGSV,")||nmeastr.startsWith("$BDGSV,")) {
+ } else if (nmeastr.startsWith("$GPGSV,") || nmeastr.startsWith("$GLGSV,") || nmeastr.startsWith("$GAGSV,") || nmeastr.startsWith("$GBGSV,") || nmeastr.startsWith("$BDGSV,")) {
// GPGSV编辑
// (可见卫星信息)
//// 字段15:信噪比(00-99)dbHz
// 字段16:校验值($与*之间的数异或后的值)
- String tmplist[] = nmeastr.split(",");
- int maxPageCount = 0;
- int currentPage = 0;
- int SatlitesCount = 0;
-
- try {
- maxPageCount = Integer.valueOf(tmplist[1]);
- } catch (Exception e) {
- }
- try {
- currentPage = Integer.valueOf(tmplist[2]);
- } catch (Exception e) {
- }
- try {
- SatlitesCount = Integer.valueOf(tmplist[3]);
- } catch (Exception e) {
- }
- if (maxPageCount > 0 && currentPage == 1) {
- //第一页把数组初始化一遍。
- satindex = 0;
- gps_status.satlite_numbss = SatlitesCount;
- }
- int satcount = (tmplist.length - 4) / 4;
+ String tmplist[] = nmeastr.split(",");
+ int maxPageCount = 0;
+ int currentPage = 0;
+ int SatlitesCount = 0;
+
+ try {
+ maxPageCount = Integer.valueOf(tmplist[1]);
+ } catch (Exception e) {
+ }
+ try {
+ currentPage = Integer.valueOf(tmplist[2]);
+ } catch (Exception e) {
+ }
+ try {
+ SatlitesCount = Integer.valueOf(tmplist[3]);
+ } catch (Exception e) {
+ }
+ if (maxPageCount > 0 && currentPage == 1) {
+ //第一页把数组初始化一遍。
+ satindex = 0;
+ gps_status.satlite_numbss = SatlitesCount;
+ }
+ int satcount = (tmplist.length - 4) / 4;
// ICLogger.i("Nmea :"+nmeastr+" "+satcount);
- runtime.getLocationInstance().set_adding_satlite_flag(true);
- for (int i = 0; i < satcount; i++) {
- satindex++;
- String prn = tmplist[i * 4 + 4];
- String snr = tmplist[i * 4 + 4 + 3];
- if (snr.contains("*")) {
- snr = snr.substring(0, snr.indexOf("*"));
- }
- if (snr.trim().isEmpty()) {
- snr = "0";
- }
+ runtime.getLocationInstance().set_adding_satlite_flag(true);
+ for (int i = 0; i < satcount; i++) {
+ satindex++;
+ String prn = tmplist[i * 4 + 4];
+ String snr = tmplist[i * 4 + 4 + 3];
+ if (snr.contains("*")) {
+ snr = snr.substring(0, snr.indexOf("*"));
+ }
+ if (snr.trim().isEmpty()) {
+ snr = "0";
+ }
// ICLogger.i("Sat=" + satindex + ",prn=" + prn + ",snr=" + snr);
- int intprn = 0;
- try {
- intprn = Integer.valueOf(prn);
- } catch (Exception e) {
- }
- float floatsnr = 0;
- try {
- floatsnr = Float.valueOf(snr);
- } catch (Exception e) {
- }
- if (floatsnr > 0) {
- //排序取得最大3个SNR
- get3MaxSnrSatellite(new ICLocation.GpsSatellitePriv(intprn, floatsnr));
- runtime.getLocationInstance().numSatelliteList.add(new ICLocation.GpsSatellitePriv(intprn, floatsnr));
- gps_status.numSatelliteList.add(new ICLocation.GpsSatellitePriv(intprn, floatsnr));
- }
- }
-
- runtime.getLocationInstance().set_adding_satlite_flag(false);
-
- } else if (nmeastr.startsWith("$GPGGA,")||nmeastr.startsWith("$GNGGA,")) {
+ int intprn = 0;
+ try {
+ intprn = Integer.valueOf(prn);
+ } catch (Exception e) {
+ }
+ float floatsnr = 0;
+ try {
+ floatsnr = Float.valueOf(snr);
+ } catch (Exception e) {
+ }
+ if (floatsnr > 0) {
+ //排序取得最大3个SNR
+ get3MaxSnrSatellite(new ICLocation.GpsSatellitePriv(intprn, floatsnr));
+ runtime.getLocationInstance().numSatelliteList.add(new ICLocation.GpsSatellitePriv(intprn, floatsnr));
+ gps_status.numSatelliteList.add(new ICLocation.GpsSatellitePriv(intprn, floatsnr));
+ }
+ }
+
+ runtime.getLocationInstance().set_adding_satlite_flag(false);
+
+ } else if (nmeastr.startsWith("$GPGGA,") || nmeastr.startsWith("$GNGGA,")) {
// GPGGA编辑
//(定位信息)
// 字段14:差分站ID号0000 - 1023(前导位数不足则补0,如果不是差分定位将为空)
// 字段15:校验值($与*之间的数异或后的值)
- String tmplist[] = nmeastr.split(",");
- String utctime = tmplist[1];
- String Lat = tmplist[2];
- String lon = tmplist[4];
- String latname= tmplist[3];
- String lonname=tmplist[5];
- String fixed = tmplist[6];
- String usedStarts = tmplist[7];
- String hdop = tmplist[8];
-
-
- if ((fixed.trim().equals("1")) || (fixed.trim().equals("2")) || (fixed.trim().equals("6"))) {
-
-
- // 转换GPS坐标为度,以便在各种应用中可以方便查找。
- try {
- latitude = Double.valueOf(Lat);
- longitude = Double.valueOf(lon);
- } catch (Exception e){}
- // 转换单位,从分转换到度
-
- double intdu = (int) (longitude / 100f); //小数转换到分为单位
- double du = (longitude - intdu * 100) / 60f;
- double last = intdu + du;
- longitude = last;
- intdu = (int) (latitude / 100f); //小数转换到分为单位
- du = (latitude - intdu * 100) / 60f;
- last = intdu + du;
- latitude = last;
-
- // 经纬度 保留4位小数点
- DecimalFormat df = new DecimalFormat("#.0000000");
- String strLatitude = df.format(latitude);
- String strLongitude = df.format(longitude);
-
- //定位
- StringBuilder sb = new StringBuilder();
- sb.append("GPGGA, location time= " + TimeUtil.getLocalTime() + ", FixedCount=" + locationFixedCount + ", GPSTime=" + utctime + ", Lat("+latname+")=" + Lat + " (" + strLatitude + "), Lon("+lonname+")=" + lon + " (" + strLongitude + "), fixed=" + fixed + ", hdop=" + hdop + ", usedStarts=" + usedStarts);
- ICLogger.i(sb.toString());
- if (Config.LOG_TOFILE)
- ICLogger.logToFile( "GPS", sb.toString());
- //定位了,
- if (hdop != null && hdop.trim().length() > 0 && Float.valueOf(hdop) < ICLocation.MAX_HDOP) {
- locationFixedCount++;
- } else {
- ICLogger.i("HDOP is larger than " + ICLocation.MAX_HDOP + " , skip this location!");
- if (Config.LOG_TOFILE)
- ICLogger.logToFile( "GPS", "HDOP is larger than " + ICLocation.MAX_HDOP + " , skip this location!");
- }
- if (locationFixedCount > MaxFixedTimes) {
+ String tmplist[] = nmeastr.split(",");
+ String utctime = tmplist[1];
+ String Lat = tmplist[2];
+ String lon = tmplist[4];
+ String latname = tmplist[3];
+ String lonname = tmplist[5];
+ String fixed = tmplist[6];
+ String usedStarts = tmplist[7];
+ String hdop = tmplist[8];
+
+
+ if ((fixed.trim().equals("1")) || (fixed.trim().equals("2")) || (fixed.trim().equals("6"))) {
+
+
+ // 转换GPS坐标为度,以便在各种应用中可以方便查找。
+ try {
+ latitude = Double.valueOf(Lat);
+ longitude = Double.valueOf(lon);
+ } catch (Exception e) {
+ }
+ // 转换单位,从分转换到度
+
+ double intdu = (int) (longitude / 100f); //小数转换到分为单位
+ double du = (longitude - intdu * 100) / 60f;
+ double last = intdu + du;
+ longitude = last;
+ intdu = (int) (latitude / 100f); //小数转换到分为单位
+ du = (latitude - intdu * 100) / 60f;
+ last = intdu + du;
+ latitude = last;
+
+ // 经纬度 保留4位小数点
+ DecimalFormat df = new DecimalFormat("#.0000000");
+ String strLatitude = df.format(latitude);
+ String strLongitude = df.format(longitude);
+
+ //定位
+ StringBuilder sb = new StringBuilder();
+ sb.append("GPGGA, location time= " + TimeUtil.getLocalTime() + ", FixedCount=" + locationFixedCount + ", GPSTime=" + utctime + ", Lat(" + latname + ")=" + Lat + " (" + strLatitude + "), Lon(" + lonname + ")=" + lon + " (" + strLongitude + "), fixed=" + fixed + ", hdop=" + hdop + ", usedStarts=" + usedStarts);
+ ICLogger.i(sb.toString());
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("GPS", sb.toString());
+ //定位了,
+ if (hdop != null && hdop.trim().length() > 0 && Float.valueOf(hdop) < ICLocation.MAX_HDOP) {
+ locationFixedCount++;
+ } else {
+ ICLogger.i("HDOP is larger than " + ICLocation.MAX_HDOP + " , skip this location!");
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("GPS", "HDOP is larger than " + ICLocation.MAX_HDOP + " , skip this location!");
+ }
+ if (locationFixedCount > MaxFixedTimes) {
/*
只有当前GPS已经定位,且location不为空才给 runtime赋值GPS坐标。
延迟MaxFixedTimes秒后才设置runtime的定位标志,以便稳定坐标值。
*/
- runtime.getLocationInstance().setLocation(Lat, lon);
- runtime.getLocationInstance().setLocationGPS(strLatitude, strLongitude);
- runtime.getLocationInstance().setLocationlatlonName(latname,lonname);
- runtime.getLocationInstance().setUsedStarts(Integer.valueOf(usedStarts.trim()));
- runtime.getLocationInstance().setHod(Float.valueOf(hdop.trim()));
- runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_FIXED);
- ICLogger.i("定位" + locationFixedCount + "次 > " + MaxFixedTimes + ", set LOCATION_FIXED ");
- if (Config.LOG_TOFILE)
- ICLogger.logToFile("GPS", "定位" + locationFixedCount + "次 > " + MaxFixedTimes + ", set LOCATION_FIXED ");
- if (!noStop) {
- stopListen();
- }
- }
- gps_status.locating_status = 1; //fixed
- } else {
- gps_status.locating_status = 0; //notfixed
- }
- try {
- gps_status.hdop = Float.valueOf(hdop.trim());
- gps_status.used_gps_numbs = Integer.valueOf(usedStarts.trim());
- } catch (Exception e) {
- }
-
- } else if (nmeastr.startsWith("$GPGSA,")||nmeastr.startsWith("$GNGSA,")) {
+ runtime.getLocationInstance().setLocation(Lat, lon);
+ runtime.getLocationInstance().setLocationGPS(strLatitude, strLongitude);
+ runtime.getLocationInstance().setLocationlatlonName(latname, lonname);
+ runtime.getLocationInstance().setUsedStarts(Integer.valueOf(usedStarts.trim()));
+ runtime.getLocationInstance().setHod(Float.valueOf(hdop.trim()));
+ runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_FIXED);
+ ICLogger.i("定位" + locationFixedCount + "次 > " + MaxFixedTimes + ", set LOCATION_FIXED ");
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("GPS", "定位" + locationFixedCount + "次 > " + MaxFixedTimes + ", set LOCATION_FIXED ");
+ if (!noStop) {
+ stopListen();
+ }
+ }
+ gps_status.locating_status = 1; //fixed
+ } else {
+ gps_status.locating_status = 0; //notfixed
+ }
+ try {
+ gps_status.hdop = Float.valueOf(hdop.trim());
+ gps_status.used_gps_numbs = Integer.valueOf(usedStarts.trim());
+ } catch (Exception e) {
+ }
+
+ } else if (nmeastr.startsWith("$GPGSA,") || nmeastr.startsWith("$GNGSA,")) {
// GPGSA编辑
//( 当前卫星信息)
// //定位
// ICLogger.i("GPGSA fixed="+fixed+",hdop="+hdop);
// }
+ }
}
- }
- public void onProviderDisabled(String paramString) {
- }
+ public void onProviderDisabled(String paramString) {
+ }
- public void onProviderEnabled(String paramString) {
- }
+ public void onProviderEnabled(String paramString) {
+ }
- @Override
- public void onLocationChanged(Location location) {
+ @Override
+ public void onLocationChanged(Location location) {
- }
+ }
- public void onStatusChanged(String paramString, int paramInt, Bundle paramBundle) {
- }
+ public void onStatusChanged(String paramString, int paramInt, Bundle paramBundle) {
+ }
- public boolean gpsColdStart() {
+ public boolean gpsColdStart() {
//冷启动
- Bundle bundle = null;
- locationManager.sendExtraCommand("gps", "force_xtra_injection", bundle); //command
- locationManager.sendExtraCommand("gps", "force_time_injection", bundle);
- boolean b1 = locationManager.sendExtraCommand("gps", "delete_aiding_data", bundle);
- return b1;
+ Bundle bundle = null;
+ locationManager.sendExtraCommand("gps", "force_xtra_injection", bundle); //command
+ locationManager.sendExtraCommand("gps", "force_time_injection", bundle);
+ boolean b1 = locationManager.sendExtraCommand("gps", "delete_aiding_data", bundle);
+ return b1;
- }
+ }
- public boolean gpsWormStart() {
+ public boolean gpsWormStart() {
//温启动
- Bundle bundleWarm = new Bundle();
- bundleWarm.putBoolean("ephemeris", true);
- locationManager.sendExtraCommand("gps", "force_xtra_injection", bundleWarm); //command
- locationManager.sendExtraCommand("gps", "force_time_injection", bundleWarm);
- boolean b2 = locationManager.sendExtraCommand("gps", "delete_aiding_data", bundleWarm);
- return b2;
- }
-
- public boolean gpsHotStart() {
+ Bundle bundleWarm = new Bundle();
+ bundleWarm.putBoolean("ephemeris", true);
+ locationManager.sendExtraCommand("gps", "force_xtra_injection", bundleWarm); //command
+ locationManager.sendExtraCommand("gps", "force_time_injection", bundleWarm);
+ boolean b2 = locationManager.sendExtraCommand("gps", "delete_aiding_data", bundleWarm);
+ return b2;
+ }
+
+ public boolean gpsHotStart() {
//热启动
- Bundle bundleHot = new Bundle();
- bundleHot.putBoolean("almanac", true);
- locationManager.sendExtraCommand("gps", "force_xtra_injection", bundleHot); //command
- locationManager.sendExtraCommand("gps", "force_time_injection", bundleHot);
- boolean b3 = locationManager.sendExtraCommand("gps", "delete_aiding_data", bundleHot);
- return b3;
- }
+ Bundle bundleHot = new Bundle();
+ bundleHot.putBoolean("almanac", true);
+ locationManager.sendExtraCommand("gps", "force_xtra_injection", bundleHot); //command
+ locationManager.sendExtraCommand("gps", "force_time_injection", bundleHot);
+ boolean b3 = locationManager.sendExtraCommand("gps", "delete_aiding_data", bundleHot);
+ return b3;
+ }
- private final int MSG_WHAT_GPS_FIXED = 300;
- private final int MSG_WHAT_GPS_TIMEOUT = 100;
- private final int MSG_WHAT_GPS_NOSTAR = 200;
- private final int MSG_WHAT_GPS_FIXED_NO_STOP = 400;
+ private final int MSG_WHAT_GPS_FIXED = 300;
+ private final int MSG_WHAT_GPS_TIMEOUT = 100;
+ private final int MSG_WHAT_GPS_NOSTAR = 200;
+ private final int MSG_WHAT_GPS_FIXED_NO_STOP = 400;
- Handler temHandler;
+ Handler temHandler;
- private void get3MaxSnrSatellite(ICLocation.GpsSatellitePriv gst) {
+ private void get3MaxSnrSatellite(ICLocation.GpsSatellitePriv gst) {
- float snr = gst.getSnr();
- for (int k = 0; k < runtime.getLocationInstance().max3Satellite.size(); k++) {
- if (runtime.getLocationInstance().max3Satellite.get(k).getPrn() == gst.getPrn())
- runtime.getLocationInstance().max3Satellite.remove(k);
- }
- runtime.getLocationInstance().max3Satellite.add(gst);//先添加进来。
-
- //从大到小排序
- for (int i = 0; i < runtime.getLocationInstance().max3Satellite.size(); i++) {
- for (int j = i; j < runtime.getLocationInstance().max3Satellite.size(); j++) {
- if (runtime.getLocationInstance().max3Satellite.get(i).getSnr() < runtime.getLocationInstance().max3Satellite.get(j).getSnr()) {
- ICLocation.GpsSatellitePriv ts = runtime.getLocationInstance().max3Satellite.get(j);
- runtime.getLocationInstance().max3Satellite.remove(j);
- runtime.getLocationInstance().max3Satellite.add(i, ts);//大的放前面
+ float snr = gst.getSnr();
+ for (int k = 0; k < runtime.getLocationInstance().max3Satellite.size(); k++) {
+ if (runtime.getLocationInstance().max3Satellite.get(k).getPrn() == gst.getPrn())
+ runtime.getLocationInstance().max3Satellite.remove(k);
+ }
+ runtime.getLocationInstance().max3Satellite.add(gst);//先添加进来。
+
+ //从大到小排序
+ for (int i = 0; i < runtime.getLocationInstance().max3Satellite.size(); i++) {
+ for (int j = i; j < runtime.getLocationInstance().max3Satellite.size(); j++) {
+ if (runtime.getLocationInstance().max3Satellite.get(i).getSnr() < runtime.getLocationInstance().max3Satellite.get(j).getSnr()) {
+ ICLocation.GpsSatellitePriv ts = runtime.getLocationInstance().max3Satellite.get(j);
+ runtime.getLocationInstance().max3Satellite.remove(j);
+ runtime.getLocationInstance().max3Satellite.add(i, ts);//大的放前面
+ }
+ }
+ }
+ if (runtime.getLocationInstance().max3Satellite.size() > 5) { //超过三个,谁小就删掉
+ runtime.getLocationInstance().max3Satellite.remove(5);
}
- }
- }
- if (runtime.getLocationInstance().max3Satellite.size() > 5) { //超过三个,谁小就删掉
- runtime.getLocationInstance().max3Satellite.remove(5);
- }
- }
+ }
- //停止定位
- private void stop(int id) {
+ //停止定位
+ private void stop(int id) {
- // 经纬度 保留6位小数点
+ // 经纬度 保留6位小数点
// DecimalFormat df = new DecimalFormat("#.000000");
// String strLatitude = df.format(latitude);
// String strLongitude = df.format(longitude);
// runtime.setLongitude(strLongitude);
//
// ICLogger.i("Location " +runtime.getLocationInstance().getLocationStat().name());
- //发送停止消息
- temHandler.sendEmptyMessage(id);
- }
+ //发送停止消息
+ temHandler.sendEmptyMessage(id);
+ }
- boolean isFrist = true;
+ boolean isFrist = true;
- public boolean startListen() {
+ public boolean startListen() {
- if (this.listening == false) {
- Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, true);
+ if (this.listening == false) {
+ Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, true);
- runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_OPEN);
+ runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_OPEN);
- Criteria criteria = new Criteria();
- criteria.setAccuracy(Criteria.ACCURACY_FINE);// 设置为最大精度
- criteria.setAltitudeRequired(false);//不要求海拔信息
- criteria.setBearingRequired(false);// 不要求方位信息
- criteria.setCostAllowed(true);//是否允许付费
- criteria.setPowerRequirement(Criteria.POWER_LOW);// 对电量的要求
+ Criteria criteria = new Criteria();
+ criteria.setAccuracy(Criteria.ACCURACY_FINE);// 设置为最大精度
+ criteria.setAltitudeRequired(false);//不要求海拔信息
+ criteria.setBearingRequired(false);// 不要求方位信息
+ criteria.setCostAllowed(true);//是否允许付费
+ criteria.setPowerRequirement(Criteria.POWER_LOW);// 对电量的要求
- String provider = locationManager.getBestProvider(criteria, true);
+ String provider = locationManager.getBestProvider(criteria, true);
- ICLogger.i("GPS StartListen with Provider " + provider);
+ ICLogger.i("GPS StartListen with Provider " + provider);
- if (Config.LOG_TOFILE) ICLogger.logToFile("GPS", "GPS StartListen with Provider " + provider);
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("GPS", "GPS StartListen with Provider " + provider);
- this.locationManager.requestLocationUpdates(provider, 0L, 0.0F, this);
+ this.locationManager.requestLocationUpdates(provider, 0L, 0.0F, this);
- this.listening = true;
- noSignalCount = 0;
- longitude = 0;
- latitude = 0;
- searchCout = 0;
- locationFixedCount = 0;
- gpsMode = GPS_CURRENT_STATUS.GPS_LISTENING;
+ this.listening = true;
+ noSignalCount = 0;
+ longitude = 0;
+ latitude = 0;
+ searchCout = 0;
+ locationFixedCount = 0;
+ gpsMode = GPS_CURRENT_STATUS.GPS_LISTENING;
// locationManager.addGpsStatusListener(statusListener);//监听搜星状态
- locationManager.addNmeaListener(this); //监听NMEA 协议数据。
+ locationManager.addNmeaListener(this); //监听NMEA 协议数据。
+
+ //做个热启动
+ return true;//gpsHotStart();
+ } else {
+ ICLogger.i(" location listening, skip !");
- //做个热启动
- return true;//gpsHotStart();
- } else {
- ICLogger.i(" location listening, skip !");
+ runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_SEARCHING);
- runtime.getLocationInstance().setLocationStat(ICLocation.LOCATION_STAT.LOCATION_SEARCHING);
+ if (Config.LOG_TOFILE) ICLogger.logToFile("GPS", " location listening, skip !");
- if (Config.LOG_TOFILE) ICLogger.logToFile("GPS", " location listening, skip !");
+ return true;
+ }
+ }
- return true;
+ public boolean isGpsOpening() {
+ return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
}
- }
- public boolean isGpsOpening() {
- return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
- }
-
- public void stopListen() {
- this.locationManager.removeNmeaListener(this);
- this.locationManager.removeUpdates(this);
- ICLogger.i("stopListen 定位 ");
- if (Config.LOG_TOFILE) ICLogger.logToFile("GPS", "stopListen 定位 ");
- if (listening==true) {
- this.listening = false;
- Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, false);
- ICLogger.i("stopListen 定位 done ");
- }else{
- if (isGpsOpening()){
- Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, false);
- ICLogger.i("flag stoped but gps still opening , stop GPS!");
- }else {
- ICLogger.i("stopListen 定位 already stop skip stopListen");
- }
+
+ public void stopListen() {
+ this.locationManager.removeNmeaListener(this);
+ this.locationManager.removeUpdates(this);
+ ICLogger.i("stopListen 定位 ");
+ if (Config.LOG_TOFILE) ICLogger.logToFile("GPS", "stopListen 定位 ");
+ if (listening == true) {
+ this.listening = false;
+ Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, false);
+ ICLogger.i("stopListen 定位 done ");
+ } else {
+ if (isGpsOpening()) {
+ Settings.Secure.setLocationProviderEnabled(runtime.getContextProxy().getResolver(), GPS_PROVIDER, false);
+ ICLogger.i("flag stoped but gps still opening , stop GPS!");
+ } else {
+ ICLogger.i("stopListen 定位 already stop skip stopListen");
+ }
+ }
+ }
+
+ public enum GPS_CURRENT_STATUS {
+ GPS_LISTENING,
+ GPS_FIXED,
+ GPS_NOTFIXED,
+ GPS_TIMEOUT,
+ GPS_NOSINGAL,
}
- }
-
- public enum GPS_CURRENT_STATUS {
- GPS_LISTENING,
- GPS_FIXED,
- GPS_NOTFIXED,
- GPS_TIMEOUT,
- GPS_NOSINGAL,
- }
}
if (lecallback == null)
lecallback = new BLeScanCallback();
- if (mHandler == null)
- {
- mHandler = new Handler(EventLooperHandlerThread.makeLooper(BTHelper.class.getSimpleName()));
+ if (mHandler == null) {
+ mHandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper());
}
}
ICLogger.i("BT startLeScan");
if (lecallback == null)
lecallback = new BLeScanCallback();
- if (mHandler == null)
- {
- mHandler = new Handler(EventLooperHandlerThread.makeLooper(BTHelper.class.getSimpleName()));
+ if (mHandler == null) {
+ mHandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper());
}
mBtAdapter.startLeScan(lecallback);
mHandler.postDelayed(mRunable_stopBleScan, BLETimeoutForOneScan * 1000);
@Override
public void run() {
- ICLogger.i("BT stopLeScan "+Thread.currentThread().getName());
+ ICLogger.i("BT stopLeScan " + Thread.currentThread().getName());
mBtAdapter.stopLeScan(lecallback);
//开始扫描前是关闭的,就关闭它
// if(!enabledBeforScan)
package com.enqualcomm.support.bean;
+import android.os.HandlerThread;
import android.os.Looper;
-import com.enqualcomm.support.utils.ICLogger;
+public class EventLooperHandlerThread {
+ private final Looper looper;
-public class EventLooperHandlerThread extends Thread {
- public Looper looper;
-
- public EventLooperHandlerThread(String name){
- super("Thread_"+name);
+ private EventLooperHandlerThread() {
+ HandlerThread handlerThread = new HandlerThread("ic:share-handler-thread");
+ handlerThread.start();
+ looper = handlerThread.getLooper();
}
- @Override
- public void run() {
- Looper.prepare();//创建与当前线程相关的Looper
- looper = Looper.myLooper();//获取当前线程的Looper对象
- ICLogger.i("EventLooperHandlerThread run");
- Looper.loop();//调用此方法,消息才会循环处理
+
+ private static EventLooperHandlerThread sInstance = null;
+
+ public static EventLooperHandlerThread getInstance() {
+ if (sInstance == null) {
+ synchronized (EventLooperHandlerThread.class) {
+ if (sInstance == null) {
+ sInstance = new EventLooperHandlerThread();
+ }
+ }
+ }
+ return sInstance;
}
- public static Looper makeLooper(String name){
- EventLooperHandlerThread eventLooperHandlerThread=new EventLooperHandlerThread(name);
- eventLooperHandlerThread.start();
- return eventLooperHandlerThread.looper;
+ public Looper makeLooper() {
+ return looper;
}
}
mRuntime = paramRuntime;
mContext = mRuntime.getContextProxy().context;
mConnection = paramConnection;
- if (Config.UsePolingCheckWeared == false) {
+ if (!Config.UsePolingCheckWeared) {
ICLogger.i("启用中断式佩戴检测!");
startSensor();
} else {
@Override
public void onDetach(Connection paramConnection, Runtime paramRuntime) {
- if (Config.UsePolingCheckWeared == false) {
+ if (!Config.UsePolingCheckWeared) {
mSensorManager.unregisterListener(mSensorEventListener);
}
}
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Handler;
-import android.os.Message;
+import android.os.HandlerThread;
import android.os.Parcelable;
import android.os.PowerManager;
import android.os.SystemClock;
import com.enqualcomm.support.Constants;
import com.enqualcomm.support.CoreService;
import com.enqualcomm.support.R;
-import com.enqualcomm.support.adapter.BTHelper;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
-import com.enqualcomm.support.bean.VoiceContent;
-import com.enqualcomm.support.utils.DBHelper;
-import com.enqualcomm.support.utils.TemperatureUtil;
-import com.enqualcomm.support.utils.TimeUtil;
-import com.ic.protocols.protocolAPIHelper;
import com.enqualcomm.support.bean.Contact;
+import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.StringMessage;
+import com.enqualcomm.support.bean.VoiceContent;
import com.enqualcomm.support.bean.voicePacket;
import com.enqualcomm.support.service.base.AbstractConnectionService;
import com.enqualcomm.support.utils.Connection;
-import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.utils.FileCache;
import com.enqualcomm.support.utils.ICLogger;
import com.enqualcomm.support.utils.NettyConnection;
-import com.enqualcomm.support.utils.ServiceUtil;
import com.enqualcomm.support.utils.SharPreferenceUtil;
import com.enqualcomm.support.utils.SimSignalUtil;
+import com.enqualcomm.support.utils.TemperatureUtil;
+import com.enqualcomm.support.utils.TimeUtil;
import com.enqualcomm.support.utils.Util;
+import com.ic.protocols.protocolAPIHelper;
import java.util.concurrent.LinkedBlockingDeque;
-import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.ReentrantLock;
* 负责发送除了login,心跳之外的所有指令
*/
public class Deliver extends AbstractConnectionService {
- private static final String RECEIVE_WAKE_LOCKTAG = "ReceiveWakelockTag";
-
- private static PowerManager.WakeLock WifiListWakeLock;
-
- public static boolean haveSendH42 = false;
-
- private static int isAppSetWifi = 0;
-
- private static boolean sendloopruning=false;
-
-
- private static ReentrantLock mLock = new ReentrantLock();
- private static ReentrantLock lock = new ReentrantLock();
- private static Condition mCondition = mLock.newCondition();
-
- public static LinkedBlockingDeque<StringMessage> queue = new LinkedBlockingDeque(200);
-
- private static FileCache fileCache;
- private static Connection connection;
-
- public static boolean is_active_location = false;
-
- private static PowerManager.WakeLock ReceiveWakeLock;
-
- private Handler delayHandler;
-
- private Runnable delayTh;
-
- private Connection mConnection;
-
- private ConWifiReceiver mMyWifiReceiver;
-
- private static Runtime mRuntime;
-
- private static boolean wakeLockWifiList = false;
-
- private static boolean wakeLockWifiSet = false;
-
- private static boolean wifiEnabled;
-
- public static Runnable delaySendMSG;
- private static Handler mSendMSGHandler;
-
- static {
- mSendMSGHandler = new Handler(EventLooperHandlerThread.makeLooper(Deliver.class.getSimpleName()));
- delaySendMSG = new Runnable() {
- @Override
- public void run() {
- sendloopruning=true;
- if (getAndSendMsgFromQueue()==true){
- //数据发送成功,则5秒后进行下一轮发送(while 循环用sleep会很占资源造成死锁
- mSendMSGHandler.postDelayed(delaySendMSG,5000L);
- }else{
- //没有数据可以发送,则退出sendloop
- sendloopruning=false;
- }
- }
- };
- }
- public Deliver(Connection paramNettyConnection, Runtime paramRuntime) {
- connection = paramNettyConnection;
- mRuntime = paramRuntime;
- //把queue 保存在磁盘中的缓存文件
- //此文件只缓存 除了 登录指令AP00,心跳AP03以及voice 分包指令以外的需要上传的指令。初步规划为 定位AP01和心率/血压 APHT
- fileCache = new FileCache(paramRuntime.getFileDir());
- }
-
- private static boolean checkNetwork(){
- boolean ret=true;
- boolean dateConnectionLinked=SimSignalUtil.checkNet(mRuntime.getContextProxy().context);
-
- if (dateConnectionLinked) {
+ private static final String RECEIVE_WAKE_LOCKTAG = "ReceiveWakelockTag";
+
+ private static PowerManager.WakeLock WifiListWakeLock;
+
+ public static boolean haveSendH42 = false;
+
+ private static int isAppSetWifi = 0;
+
+ private static boolean sendloopruning = false;
+
+
+ private static ReentrantLock mLock = new ReentrantLock();
+ private static ReentrantLock lock = new ReentrantLock();
+ private static Condition mCondition = mLock.newCondition();
+
+ public static LinkedBlockingDeque<StringMessage> queue = new LinkedBlockingDeque(200);
+
+ private static FileCache fileCache;
+ private static Connection connection;
+
+ public static boolean is_active_location = false;
+
+ private static PowerManager.WakeLock ReceiveWakeLock;
+
+ private Handler delayHandler;
+
+ private Runnable delayTh;
+
+ private Connection mConnection;
+
+ private ConWifiReceiver mMyWifiReceiver;
+
+ private static Runtime mRuntime;
+
+ private static boolean wakeLockWifiList = false;
+
+ private static boolean wakeLockWifiSet = false;
+
+ private static boolean wifiEnabled;
+
+ public static Runnable delaySendMSG;
+ private static final Handler mSendMSGHandler;
+
+ static {
+ HandlerThread handlerThread = new HandlerThread("ic:deliver-handlerThread");
+ handlerThread.start();
+ mSendMSGHandler = new Handler(handlerThread.getLooper());
+ delaySendMSG = new Runnable() {
+ @Override
+ public void run() {
+ sendloopruning = true;
+ if (getAndSendMsgFromQueue()) {
+ //数据发送成功,则5秒后进行下一轮发送(while 循环用sleep会很占资源造成死锁
+ mSendMSGHandler.postDelayed(delaySendMSG, 5000L);
+ } else {
+ //没有数据可以发送,则退出sendLoop
+ sendloopruning = false;
+ }
+ }
+ };
+ }
+
+ public Deliver(Connection paramNettyConnection, Runtime paramRuntime) {
+ connection = paramNettyConnection;
+ mRuntime = paramRuntime;
+ //把queue 保存在磁盘中的缓存文件
+ //此文件只缓存 除了 登录指令AP00,心跳AP03以及voice 分包指令以外的需要上传的指令。初步规划为 定位AP01和心率/血压 APHT
+ fileCache = new FileCache(paramRuntime.getFileDir());
+ }
+
+ private static boolean checkNetwork() {
+ boolean ret = true;
+ boolean dateConnectionLinked = SimSignalUtil.checkNet(mRuntime.getContextProxy().context);
+
+ if (dateConnectionLinked) {
// int signal = mRuntime.getSignalStrength();
// int networkType = SimSignalUtil.getInstance((mRuntime.getContextProxy()).context).getNetworkType();
// if (signal + 110 < getMinSignalStrength(networkType)) {
// //如果信号不好,把msg放回去
// ret = false;
// }
- if (connection.isServerConnected() == false || !mRuntime.isServerProtocolConnected()) {
- ICLogger.i("服务器无法访问,或者协议状态失常");
- ret = false;
- }
- }else{
- ICLogger.i("数据网络没有连接");
- ret=false;
+ if (connection.isServerConnected() == false || !mRuntime.isServerProtocolConnected()) {
+ ICLogger.i("服务器无法访问,或者协议状态失常");
+ ret = false;
+ }
+ } else {
+ ICLogger.i("数据网络没有连接");
+ ret = false;
+ }
+ return ret;
}
- return ret;
- }
- public static void triggerSendThread() {
-
- if(sendloopruning==false) {
- ICLogger.i("triggerSendThread !");
- mSendMSGHandler.post(delaySendMSG);
- }else{
- ICLogger.i("triggerSendThread running skip !");
+ public static void triggerSendThread() {
+ if (!sendloopruning) {
+ ICLogger.i("triggerSendThread !");
+ mSendMSGHandler.post(delaySendMSG);
+ } else {
+ ICLogger.i("triggerSendThread running skip !");
+ }
}
-// delaySendMSG.run();
-// mSendMSGHandler.sendEmptyMessage(1);
- }
- private static int CheckCount=0;
- private static boolean checkNeedServerResponse(StringMessage cmd){
-
- boolean NeedCheckServerResponse;
- if(cmd!=null &&
- Config.protocol_no==Config.PROTOCOL_FZD &&
- (protocolAPIHelper.isCmdStr(cmd).equals("UD") || protocolAPIHelper.isCmdStr(cmd).equals("UD2"))
- ){
- NeedCheckServerResponse=false;
- }else{
- NeedCheckServerResponse=true;
- }
- return NeedCheckServerResponse;
- }
- public static void dumpMessage(StringMessage msg){
-
- StringBuilder sb = new StringBuilder("StringMessage ");
- if (msg!=null) {
- sb.append("index ").append(msg.getIndex())
- .append("\nDate ").append(msg.getDate()).append(msg.getTime())
- .append("\nflag ").append(msg.haveSent())
- .append("\ntopic ").append(msg.cmd())
- .append("\ncmd ").append(msg.isFromCache()).append("\n");
+ private static int CheckCount = 0;
+
+ private static boolean checkNeedServerResponse(StringMessage cmd) {
+
+ boolean NeedCheckServerResponse;
+ if (cmd != null &&
+ Config.protocol_no == Config.PROTOCOL_FZD &&
+ (protocolAPIHelper.isCmdStr(cmd).equals("UD") || protocolAPIHelper.isCmdStr(cmd).equals("UD2"))
+ ) {
+ NeedCheckServerResponse = false;
+ } else {
+ NeedCheckServerResponse = true;
+ }
+ return NeedCheckServerResponse;
}
+
+ public static void dumpMessage(StringMessage msg) {
+
+ StringBuilder sb = new StringBuilder("StringMessage ");
+ if (msg != null) {
+ sb.append("index ").append(msg.getIndex())
+ .append("\nDate ").append(msg.getDate()).append(msg.getTime())
+ .append("\nflag ").append(msg.haveSent())
+ .append("\ntopic ").append(msg.cmd())
+ .append("\ncmd ").append(msg.isFromCache()).append("\n");
+ }
// ICLogger.i(sb.toString());
- }
- public static boolean getAndSendMsgFromQueue(){
- boolean ret=false;
- if (mRuntime.getUseQueue()) {
- ICLogger.i("queue locked "+mLock.isLocked());
- if(mLock.isLocked()) return false;
- mLock.lock();
- try
- {
- String str;
- //如果没有数据从缓存中尝试读取
-
- //检查刚刚发送出去的包是否需要检查server response
-
- StringMessage msgWait=mRuntime.getDbHelper().queryWaitCMDRecord();
- dumpMessage(msgWait);
+ }
- if(msgWait!=null) {
- //如果需要,且没有服务器反馈
- //刚刚发送的包不为空,且检测次数小于3,则保留数据,进行下一次重试。
- //如果cmd有效,且尝试次数小于3, 没有收到反馈的情况下,可以重新插入queue进行下一次尝试!
- ICLogger.i("checkSrvResponse " + CheckCount + " times for " + msgWait.cmd() + " " + msgWait.isFromCache() + " index " + msgWait.getIndex());
- if (msgWait.getIndex() >= 0) {
- mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 0);//设置为未发送
- }
- dumpMessage(msgWait);
- CheckCount++;
- //尝试次数大于5 ,可能是还没有发送过数据,或者超过重试次数,暂停提取queue中数据进,下次心跳再开始发送
- if (CheckCount > 5) {
- ICLogger.i("checkSrvResponse CheckCount=" + CheckCount + " Timeout or cmd is null, skip ");
-
- //C5要的临时版本,去掉盲点续传。
-
- if( Config.discard_cmd_after_retryfailed) {
- if (msgWait.getIndex() >= 0) {
- //有些协议需要对盲点数据进行修改(盲点数据可能是不同的topic),在此对数据修改后更新数据库
- mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 3);//设置为盲点不发送
- }
+ public static boolean getAndSendMsgFromQueue() {
+ boolean ret = false;
+ if (mRuntime.getUseQueue()) {
+ ICLogger.i("queue locked " + mLock.isLocked() +
+ " current Thread is == > "
+ + Thread.currentThread().getName());
+ if (mLock.isLocked()) return false;
+ mLock.lock();
+ try {
+ String str;
+ //如果没有数据从缓存中尝试读取
+
+ //检查刚刚发送出去的包是否需要检查server response
+
+ StringMessage msgWait = mRuntime.getDbHelper().queryWaitCMDRecord();
dumpMessage(msgWait);
- }
- if (Config.LOG_TOFILE)
- ICLogger.logToFile("APILog", "response timeout skip! ");
- CheckCount = 0;
- if (mLock != null && mLock.isLocked())
- mLock.unlock();
- return false;
- }
- }
+ if (msgWait != null) {
+ //如果需要,且没有服务器反馈
+ //刚刚发送的包不为空,且检测次数小于3,则保留数据,进行下一次重试。
+ //如果cmd有效,且尝试次数小于3, 没有收到反馈的情况下,可以重新插入queue进行下一次尝试!
+ ICLogger.i("checkSrvResponse " + CheckCount + " times for " + msgWait.cmd() + " " + msgWait.isFromCache() + " index " + msgWait.getIndex());
+ if (msgWait.getIndex() >= 0) {
+ mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 0);//设置为未发送
+ }
+ dumpMessage(msgWait);
+ CheckCount++;
+ //尝试次数大于5 ,可能是还没有发送过数据,或者超过重试次数,暂停提取queue中数据进,下次心跳再开始发送
+ if (CheckCount > 5) {
+ ICLogger.i("checkSrvResponse CheckCount=" + CheckCount + " Timeout or cmd is null, skip ");
+
+ //C5要的临时版本,去掉盲点续传。
+
+ if (Config.discard_cmd_after_retryfailed) {
+ if (msgWait.getIndex() >= 0) {
+ //有些协议需要对盲点数据进行修改(盲点数据可能是不同的topic),在此对数据修改后更新数据库
+ mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 3);//设置为盲点不发送
+ }
+ dumpMessage(msgWait);
+ }
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("APILog", "response timeout skip! ");
+ CheckCount = 0;
+ if (mLock != null && mLock.isLocked())
+ mLock.unlock();
+ return false;
+ }
- StringBuilder stringBuilder = new StringBuilder();
- if (checkNetwork()) {
- StringMessage msgSent;
- if( Config.discard_cmd_after_retryfailed) {
- //如果可以丢弃数据,则直接查找没发送的数据即可
- msgSent = mRuntime.getDbHelper().queryNotSentCMDRecord();
- }else{
- //如果有盲点续传问题,不丢弃,则先查找丢掉的数据(重试失败的)先进行重传。
- msgSent = mRuntime.getDbHelper().queryDiscardCMDRecord();
- if(msgSent==null) {
- //如果没有丢弃的数据,直接查找未发送的数据进行
- msgSent = mRuntime.getDbHelper().queryNotSentCMDRecord();
- }
- }
- dumpMessage(msgSent);
- if (msgSent != null) {
- String cmd = msgSent.isFromCache();
- String topic = msgSent.cmd();
- stringBuilder.append(topic);
- stringBuilder.append(" ");
- stringBuilder.append(cmd);
- stringBuilder.append("\n");
- if (checkNetwork()) {
-
- connection.send(msgSent);
- //如果需要CheckResponse
- if (checkNeedServerResponse(msgSent)==true){
- ICLogger.i("checkSrvResponse "+topic+" "+cmd);
- mRuntime.getDbHelper().updateCMDRecord(msgSent.getIndex(),1); //设置为等待响应
- }else{
- ICLogger.i("no need checkSrvResponse "+topic+" "+cmd);
- mRuntime.getDbHelper().updateCMDRecord(msgSent.getIndex(),2); //直接设置为已经响应
}
- ret=true;
- } else {
- //已经拿到的缓存,如果刚巧没有网络,就原路放回去
- ICLogger.i("网络不通,不能发送!");
- if (msgSent.getIndex() >= 0) {
- mRuntime.getDbHelper().updateCMDRecord(msgSent.getIndex(), 0); //设置为未发送
+
+ StringBuilder stringBuilder = new StringBuilder();
+ if (checkNetwork()) {
+ StringMessage msgSent;
+ if (Config.discard_cmd_after_retryfailed) {
+ //如果可以丢弃数据,则直接查找没发送的数据即可
+ msgSent = mRuntime.getDbHelper().queryNotSentCMDRecord();
+ } else {
+ //如果有盲点续传问题,不丢弃,则先查找丢掉的数据(重试失败的)先进行重传。
+ msgSent = mRuntime.getDbHelper().queryDiscardCMDRecord();
+ if (msgSent == null) {
+ //如果没有丢弃的数据,直接查找未发送的数据进行
+ msgSent = mRuntime.getDbHelper().queryNotSentCMDRecord();
+ }
+ }
+ dumpMessage(msgSent);
+ if (msgSent != null) {
+ String cmd = msgSent.isFromCache();
+ String topic = msgSent.cmd();
+ stringBuilder.append(topic);
+ stringBuilder.append(" ");
+ stringBuilder.append(cmd);
+ stringBuilder.append("\n");
+ if (checkNetwork()) {
+ connection.send(msgSent);
+ //如果需要CheckResponse
+ if (checkNeedServerResponse(msgSent) == true) {
+ ICLogger.i("checkSrvResponse " + topic + " " + cmd);
+ mRuntime.getDbHelper().updateCMDRecord(msgSent.getIndex(), 1); //设置为等待响应
+ } else {
+ ICLogger.i("no need checkSrvResponse " + topic + " " + cmd);
+ mRuntime.getDbHelper().updateCMDRecord(msgSent.getIndex(), 2); //直接设置为已经响应
+ }
+ ret = true;
+ } else {
+ //已经拿到的缓存,如果刚巧没有网络,就原路放回去
+ ICLogger.i("网络不通,不能发送!");
+ if (msgSent.getIndex() >= 0) {
+ mRuntime.getDbHelper().updateCMDRecord(msgSent.getIndex(), 0); //设置为未发送
+ }
+ dumpMessage(msgSent);
+ ret = false;
+ }
+ } else {
+ stringBuilder.append("no message!\n");
+ }
}
- dumpMessage(msgSent);
- ret=false;
- }
- }else{
- stringBuilder.append("no message!\n");
+ str = stringBuilder.toString();
+ ICLogger.i("send cached cmd : \n" + str);
+ //ICLogger.i("\n"+queue.size()+" left in Queue!");
+ } finally {
+ if (mLock != null && mLock.isLocked())
+ mLock.unlock();
}
- }
- str = stringBuilder.toString();
- ICLogger.i("send cached cmd : \n"+str);
- //ICLogger.i("\n"+queue.size()+" left in Queue!");
- }finally {
- if(mLock!=null && mLock.isLocked())
- mLock.unlock();
- }
- }
- return ret;
- }
-
- public static void resetCMDReocrdsDB(){
- //正常应该只有一个在wait的记录,如果开机的时候,可能需要处理一下第一条记录
- StringMessage msgWait=mRuntime.getDbHelper().queryWaitCMDRecord();
- dumpMessage(msgWait);
- if (msgWait!=null) {
- if( Config.discard_cmd_after_retryfailed) {
- while(msgWait!=null) {
- //所有缓存数据都设置为放弃发送
- mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 3);
- msgWait=mRuntime.getDbHelper().queryWaitCMDRecord();
}
- }else {
- mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 0);//设置为未发送
- }
+ return ret;
}
- }
- public static void sendLocationMSG( String Msg){
- if(Msg==null ||Msg.trim().isEmpty()){
- ICLogger.i("命令为空,跳过发送!");
- return ;
+ public static void resetCMDReocrdsDB() {
+ //正常应该只有一个在wait的记录,如果开机的时候,可能需要处理一下第一条记录
+ StringMessage msgWait = mRuntime.getDbHelper().queryWaitCMDRecord();
+ dumpMessage(msgWait);
+ if (msgWait != null) {
+ if (Config.discard_cmd_after_retryfailed) {
+ while (msgWait != null) {
+ //所有缓存数据都设置为放弃发送
+ mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 3);
+ msgWait = mRuntime.getDbHelper().queryWaitCMDRecord();
+ }
+ } else {
+ mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 0);//设置为未发送
+ }
+ }
}
- sendLocationMSG(protocolAPIHelper.genStringMessage("queue",Msg));
- }
- public static void sendLocationMSG( StringMessage Msg){
- if(Msg==null ){
- ICLogger.i("命令为空,跳过发送!");
- return ;
+
+ public static void sendLocationMSG(String Msg) {
+
+ if (Msg == null || Msg.trim().isEmpty()) {
+ ICLogger.i("命令为空,跳过发送!");
+ return;
+ }
+ sendLocationMSG(protocolAPIHelper.genStringMessage("queue", Msg));
}
- if(mRuntime.getUseQueue()){
- long id=mRuntime.getDbHelper().insertCMDRecord(Msg);
- Msg.setIndex((int)id);
- dumpMessage(Msg);
- triggerSendThread();
- }else {
- if (checkNetwork()) {
- ICLogger.i(" first send " + Msg);
- connection.send(Msg);
- } else {
- ICLogger.i("offline skip " + Msg);
- if (Config.LOG_TOFILE) ICLogger.logToFile( "APILog", " offlineskip " + Msg.cmd()+" "+Msg.isFromCache());
- }
+ public static void sendLocationMSG(StringMessage Msg) {
+ if (Msg == null) {
+ ICLogger.i("命令为空,跳过发送!");
+ return;
+ }
+
+ if (mRuntime.getUseQueue()) {
+ long id = mRuntime.getDbHelper().insertCMDRecord(Msg);
+ Msg.setIndex((int) id);
+ dumpMessage(Msg);
+ triggerSendThread();
+ } else {
+ if (checkNetwork()) {
+ ICLogger.i(" first send " + Msg);
+ connection.send(Msg);
+ } else {
+ ICLogger.i("offline skip " + Msg);
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("APILog", " offlineskip " + Msg.cmd() + " " + Msg.isFromCache());
+ }
+ }
}
-}
- private static int getMinSignalStrength(int paramInt) {
- int b = -105;
- switch (paramInt) {
- case SimSignalUtil.IS_4G:
- b = -100;
- break;
- case SimSignalUtil.IS_2G:
- case SimSignalUtil.IS_3G:
- default:
- break;
+
+ private static int getMinSignalStrength(int paramInt) {
+ int b = -105;
+ switch (paramInt) {
+ case SimSignalUtil.IS_4G:
+ b = -100;
+ break;
+ case SimSignalUtil.IS_2G:
+ case SimSignalUtil.IS_3G:
+ default:
+ break;
+ }
+ return b;
}
- return b;
- }
-
- public static PowerManager.WakeLock WakeLockForGetWifiList(Runtime paramRuntime) {
- PowerManager.WakeLock wakeLock = ((PowerManager)(paramRuntime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Deliver.class.getSimpleName());
- wakeLock.acquire(120000L);
- return wakeLock;
- }
-
- private boolean isSilence(Runtime paramRuntime) {
- return SharPreferenceUtil.getPrefBoolean((paramRuntime.getContextProxy()).context, "KEY_ISSILENCE", false);
- }
-
- public static void releaseWakeLockForGetWifiList() {
- if (WifiListWakeLock == null) {
- ICLogger.i("WifiListWakeLock 没有加锁");
- return;
- }
- if (WifiListWakeLock.isHeld()) {
- WifiListWakeLock.release();
- WifiListWakeLock = null;
- }
- }
-
- public PowerManager.WakeLock getWakeLock() {
- PowerManager.WakeLock wakeLock = ((PowerManager)(this.mRuntime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Deliver.class.getSimpleName());
- wakeLock.acquire(40000L);
- return wakeLock;
- }
-
- public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {}
-
- public void onAttach(Connection paramConnection, Runtime paramRuntime) {}
-
- @Override
- public boolean onConnectionClose(Connection paramConnection, Runtime paramRuntime, String ErrorMsg) {
- return false; }
-
- public boolean onConnectionOpen(Connection paramConnection, Runtime paramRuntime) { return false; }
-
- public void onDetach(Connection paramConnection, Runtime paramRuntime) {}
-
- public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, final Runtime paramRuntime) {
- this.mConnection = paramConnection;
- this.mRuntime = paramRuntime;
- String cmd = paramStringMessage.cmd();
- if(Config.protocol_no==Config.PROTOCOL_MQTT)
- {
- cmd=protocolAPIHelper.isCmdStr(paramStringMessage);
+
+ public static PowerManager.WakeLock WakeLockForGetWifiList(Runtime paramRuntime) {
+ PowerManager.WakeLock wakeLock = ((PowerManager) (paramRuntime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Deliver.class.getSimpleName());
+ wakeLock.acquire(120000L);
+ return wakeLock;
}
- //如果需要检测是否响应。
- StringMessage msgWait=mRuntime.getDbHelper().queryWaitCMDRecord();
- dumpMessage(msgWait);
- if(msgWait!=null) {
- ICLogger.i("====== checkSrvResponse cmd " + cmd + " msg " + protocolAPIHelper.isCmdStr(msgWait));
- if (cmd.equals(protocolAPIHelper.isCmdStr(msgWait))) {
- ICLogger.i("checkSrvResponse " + cmd + " " + protocolAPIHelper.isCmdStr(msgWait) + " is responsed!");
- mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 2);//设置为已读
- CheckCount = 0;
- }
+
+ private boolean isSilence(Runtime paramRuntime) {
+ return SharPreferenceUtil.getPrefBoolean((paramRuntime.getContextProxy()).context, "KEY_ISSILENCE", false);
}
- ICLogger.i("Deliver receive cmd " + paramStringMessage.cmd());
- if (cmd.equals("SentVoicePacket") ) {
- //收到BP07 表示服务器收到一个voicePacket 分包成功,开始检查下一个包是否存在需要发送。
- //收到SentVoicePacket 表示 有一个VoiceMessage要发送,需要从第0个包开始发送语音分包。
- voicePacket voicepacket = voicePacket.getInstanceSent();
- if (voicepacket.getCurrentIndexToSent() < voicepacket.getPacketCount()) {
- ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() +" "+ voicepacket.getPacketTime() + " send " + (voicepacket.getCurrentIndexToSent() + 1) + "/" + voicepacket.getPacketCount());
- if(mConnection instanceof NettyConnection) {
- ((NettyConnection) mConnection).sendMsg("RAWPACKET",
- protocolAPIHelper.getVoicePacketItem(voicepacket.getPacketTime(),
- voicepacket.getPacketCount(),
- (voicepacket.getCurrentIndexToSent() + 1),
- voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketLen(),
- voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketData(), voicepacket.getFiletype(), voicepacket.getDateType())
- );
+ public static void releaseWakeLockForGetWifiList() {
+ if (WifiListWakeLock == null) {
+ ICLogger.i("WifiListWakeLock 没有加锁");
+ return;
}
- } else {
- ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() + " " + voicepacket.getPacketTime() + " sent Done!");
- }
- return true;
- } else if ("PhotoRemoteTaken".equals(paramStringMessage.cmd())) {
- //接收到拍照完毕命令,发送照片
-
- String msgUrl=paramStringMessage.isFromCache();
- ICLogger.i("receive taken photo to send "+msgUrl);
- //创建voiceConent并添加到数据
- final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", msgUrl,2,2);
-
- // 把voiceContent拆解成1024的分包
- Util.parseToVoicePacketSent(voiceContent);
- //trigger 分包发送
- if (CoreService.getInstance().getConnection()!=null) {
-
-
- //H88 专用功能拍照时检测用户体温心率
- if(Util.getSystemProperties("persist.sys.do_check_condition","false").equals("true")) {
- //开启测温
- if(mRuntime.check_stat_do_temp_test()) {
- TemperatureUtil.DoTempTest();
+ if (WifiListWakeLock.isHeld()) {
+ WifiListWakeLock.release();
+ WifiListWakeLock = null;
}
+ }
- Util.mSleep(5000);
- //开启测量PPG
- if(mRuntime.check_stat_do_ppg_test()) {
- HeartRateManager.triggerPPGtest();
- }
- }
+ public PowerManager.WakeLock getWakeLock() {
+ PowerManager.WakeLock wakeLock = ((PowerManager) (this.mRuntime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, Deliver.class.getSimpleName());
+ wakeLock.acquire(40000L);
+ return wakeLock;
+ }
- CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
+ public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {
}
- return true;
- } else if ("poweroffCheckSim".equals(paramStringMessage.cmd())) {
- paramRuntime.setShutdown(true);
-
- if (SimSignalUtil.hasSimCard(paramRuntime.getContextProxy().context))
- {
- ICLogger.i("Has Sim Card Skip poweroff!");
- Util.ShowToast(paramRuntime,"Has Sim Card Skip poweroff!");
- return true;
- }else{
- Util.ShowToast(paramRuntime,"Do poweroff!");
- }
- mSendMSGHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- Util.shutdown();
- }
- },2000);
- return true;
- } else if ("FactoryResetCheckSim".equals(paramStringMessage.cmd())) {
-
- if (SimSignalUtil.hasSimCard(paramRuntime.getContextProxy().context))
- {
- ICLogger.i("Has Sim Card Skip FactoryReset!");
- Util.ShowToast(paramRuntime,"Has Sim Card Skip FactoryReset!");
-
- return true;
- }else{
- Util.ShowToast(paramRuntime,"Do FactoryReset!");
- }
- mSendMSGHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- Util.doMasterClear(paramRuntime.getContextProxy().context);
- }
- },2000);
- return true;
- } else if ("poweroff".equals(paramStringMessage.cmd())) {
- paramRuntime.setShutdown(true);
- mSendMSGHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- Util.shutdown();
- }
- },2000);
- return true;
- } else if ("FactoryReset".equals(paramStringMessage.cmd())) {
- mSendMSGHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- Util.doMasterClear(paramRuntime.getContextProxy().context);
+
+ public void onAttach(Connection paramConnection, Runtime paramRuntime) {
+ }
+
+ @Override
+ public boolean onConnectionClose(Connection paramConnection, Runtime paramRuntime, String ErrorMsg) {
+ return false;
+ }
+
+ public boolean onConnectionOpen(Connection paramConnection, Runtime paramRuntime) {
+ return false;
+ }
+
+ public void onDetach(Connection paramConnection, Runtime paramRuntime) {
+ }
+
+ public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, final Runtime paramRuntime) {
+ this.mConnection = paramConnection;
+ this.mRuntime = paramRuntime;
+ String cmd = paramStringMessage.cmd();
+ if (Config.protocol_no == Config.PROTOCOL_MQTT) {
+ cmd = protocolAPIHelper.isCmdStr(paramStringMessage);
}
- },2000);
- return true;
- } else if ("Reboot".equals(paramStringMessage.cmd())) {
- mSendMSGHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- Util.reboot(paramRuntime.getContextProxy().context);
+ //如果需要检测是否响应。
+ StringMessage msgWait = mRuntime.getDbHelper().queryWaitCMDRecord();
+ dumpMessage(msgWait);
+ if (msgWait != null) {
+ ICLogger.i("====== checkSrvResponse cmd " + cmd + " msg " + protocolAPIHelper.isCmdStr(msgWait));
+ if (cmd.equals(protocolAPIHelper.isCmdStr(msgWait))) {
+ ICLogger.i("checkSrvResponse " + cmd + " " + protocolAPIHelper.isCmdStr(msgWait) + " is responsed!");
+ mRuntime.getDbHelper().updateCMDRecord(msgWait.getIndex(), 2);//设置为已读
+ CheckCount = 0;
+ }
}
- },2000);
- return true;
- } else if ("heartbeat".equals(paramStringMessage.cmd())) {
- //每次心跳,查询一下 是否有语音消息需要接收。
-// paramConnection.send(protocolAPIHelper.genStringMessage("AP05",protocolAPIHelper.AP05(true)));
- } else if ("getWeather".equals(paramStringMessage.cmd())) {
- ICLogger.i("获取天气");
- mConnection.send(protocolAPIHelper.getWeatherMSG(mRuntime));
- } else if ("NewVoice".equals(paramStringMessage.cmd()))
- {
- mSendMSGHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- final Context context = (Deliver.this.mRuntime.getContextProxy()).context;
-
- Contact param2Contact = new Contact(CATEGORY_GROUP, (mRuntime.getContextProxy()).context.getResources().getString(R.string.all_group), Contact.GROUP_ALL);
- int i = mRuntime.getContextProxy().getTelephonyManager().getCallState();
- if (!mRuntime.getBatteryLow() && 1 != i && 2 != i) {
- if (Config.do_broadCast_message)
- {
-
- ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED+" "+paramStringMessage.isFromCache());
- //广播 voice消息
- Intent intent = new Intent();
- intent.setAction(Constants.ACTION_MESSAGE_RECEIVED);
- intent.putExtra(Constants.KEY_MESSAGE_TYPE,"voice");
- intent.putExtra(Constants.KEY_MESSAGE_FROM,"广播消息");
- intent.putExtra(Constants.KEY_MESSAGE_URL,paramStringMessage.isFromCache());
-
- // playVoice(context,paramStringMessage.isFromCache());
- context.sendBroadcast(intent);
+ ICLogger.i("Deliver receive cmd " + paramStringMessage.cmd());
+ if (cmd.equals("SentVoicePacket")) {
+ //收到BP07 表示服务器收到一个voicePacket 分包成功,开始检查下一个包是否存在需要发送。
+ //收到SentVoicePacket 表示 有一个VoiceMessage要发送,需要从第0个包开始发送语音分包。
+ voicePacket voicepacket = voicePacket.getInstanceSent();
+ if (voicepacket.getCurrentIndexToSent() < voicepacket.getPacketCount()) {
+ ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() + " " + voicepacket.getPacketTime() + " send " + (voicepacket.getCurrentIndexToSent() + 1) + "/" + voicepacket.getPacketCount());
+ if (mConnection instanceof NettyConnection) {
+ ((NettyConnection) mConnection).sendMsg("RAWPACKET",
+ protocolAPIHelper.getVoicePacketItem(voicepacket.getPacketTime(),
+ voicepacket.getPacketCount(),
+ (voicepacket.getCurrentIndexToSent() + 1),
+ voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketLen(),
+ voicepacket.getVoicePacketWithIndex(voicepacket.getCurrentIndexToSent()).getPacketData(), voicepacket.getFiletype(), voicepacket.getDateType())
+ );
+ }
+ } else {
+ ICLogger.i("voicepacket " + voicepacket.getName() + " filetype " + voicepacket.getFiletype() + " , datatype " + voicepacket.getDateType() + " " + voicepacket.getPacketTime() + " sent Done!");
}
+ return true;
+ } else if ("PhotoRemoteTaken".equals(paramStringMessage.cmd())) {
+ //接收到拍照完毕命令,发送照片
+
+ String msgUrl = paramStringMessage.isFromCache();
+ ICLogger.i("receive taken photo to send " + msgUrl);
+ //创建voiceConent并添加到数据
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", msgUrl, 2, 2);
+
+ // 把voiceContent拆解成1024的分包
+ Util.parseToVoicePacketSent(voiceContent);
+ //trigger 分包发送
+ if (CoreService.getInstance().getConnection() != null) {
- if (Config.noVoiceNotifyDialog==false) {
- Intent intent = new Intent();
- //显示提示窗口
- intent.setAction(DIALOG_ACTION);
- intent.putExtra("contact", (Parcelable) param2Contact);
- context.sendBroadcast(intent);
+ //H88 专用功能拍照时检测用户体温心率
+ if (Util.getSystemProperties("persist.sys.do_check_condition", "false").equals("true")) {
+ //开启测温
+ if (mRuntime.check_stat_do_temp_test()) {
+ TemperatureUtil.DoTempTest();
+ }
+
+ Util.mSleep(5000);
+ //开启测量PPG
+ if (mRuntime.check_stat_do_ppg_test()) {
+ HeartRateManager.triggerPPGtest();
+ }
+ }
+
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
}
+ return true;
+ } else if ("poweroffCheckSim".equals(paramStringMessage.cmd())) {
+ paramRuntime.setShutdown(true);
+
+ if (SimSignalUtil.hasSimCard(paramRuntime.getContextProxy().context)) {
+ ICLogger.i("Has Sim Card Skip poweroff!");
+ Util.ShowToast(paramRuntime, "Has Sim Card Skip poweroff!");
+ return true;
+ } else {
+ Util.ShowToast(paramRuntime, "Do poweroff!");
+ }
+ mSendMSGHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ Util.shutdown();
+ }
+ }, 2000);
+ return true;
+ } else if ("FactoryResetCheckSim".equals(paramStringMessage.cmd())) {
- }
- }
- },500);
-
- return true;
- }else if ("findDev".equals(paramStringMessage.cmd())) {
-
- mSendMSGHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- final Context context = (Deliver.this.mRuntime.getContextProxy()).context;
- Intent intent = new Intent();
- ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED+" "+paramStringMessage.isFromCache());
- //显示提示窗口
- intent.setAction(DIALOG_ACTION);
- intent.putExtra("findDev", "Find Device");
- context.sendBroadcast(intent);
- }
- },500);
-
- return true;
- }else if ("takephoto".equals(paramStringMessage.cmd())) {
-
- mSendMSGHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- final Context context = (Deliver.this.mRuntime.getContextProxy()).context;
- Intent intent = new Intent();
- ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED+" "+paramStringMessage.isFromCache());
- //显示提示窗口
- intent.setAction(DIALOG_ACTION);
- intent.putExtra("takephoto", "Take Photo !");
- context.sendBroadcast(intent);
- }
- },500);
+ if (SimSignalUtil.hasSimCard(paramRuntime.getContextProxy().context)) {
+ ICLogger.i("Has Sim Card Skip FactoryReset!");
+ Util.ShowToast(paramRuntime, "Has Sim Card Skip FactoryReset!");
+
+ return true;
+ } else {
+ Util.ShowToast(paramRuntime, "Do FactoryReset!");
+ }
+ mSendMSGHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ Util.doMasterClear(paramRuntime.getContextProxy().context);
+ }
+ }, 2000);
+ return true;
+ } else if ("poweroff".equals(paramStringMessage.cmd())) {
+ paramRuntime.setShutdown(true);
+ mSendMSGHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ Util.shutdown();
+ }
+ }, 2000);
+ return true;
+ } else if ("FactoryReset".equals(paramStringMessage.cmd())) {
+ mSendMSGHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ Util.doMasterClear(paramRuntime.getContextProxy().context);
+ }
+ }, 2000);
+ return true;
+ } else if ("Reboot".equals(paramStringMessage.cmd())) {
+ mSendMSGHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ Util.reboot(paramRuntime.getContextProxy().context);
+ }
+ }, 2000);
+ return true;
+ } else if ("heartbeat".equals(paramStringMessage.cmd())) {
+ //每次心跳,查询一下 是否有语音消息需要接收。
+// paramConnection.send(protocolAPIHelper.genStringMessage("AP05",protocolAPIHelper.AP05(true)));
- return true;
+ } else if ("getWeather".equals(paramStringMessage.cmd())) {
+ ICLogger.i("获取天气");
+ mConnection.send(protocolAPIHelper.getWeatherMSG(mRuntime));
+ } else if ("NewVoice".equals(paramStringMessage.cmd())) {
+ mSendMSGHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ final Context context = (Deliver.this.mRuntime.getContextProxy()).context;
+
+ Contact param2Contact = new Contact(CATEGORY_GROUP, (mRuntime.getContextProxy()).context.getResources().getString(R.string.all_group), Contact.GROUP_ALL);
+ int i = mRuntime.getContextProxy().getTelephonyManager().getCallState();
+ if (!mRuntime.getBatteryLow() && 1 != i && 2 != i) {
+ if (Config.do_broadCast_message) {
+
+ ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED + " " + paramStringMessage.isFromCache());
+ //广播 voice消息
+ Intent intent = new Intent();
+ intent.setAction(Constants.ACTION_MESSAGE_RECEIVED);
+ intent.putExtra(Constants.KEY_MESSAGE_TYPE, "voice");
+ intent.putExtra(Constants.KEY_MESSAGE_FROM, "广播消息");
+ intent.putExtra(Constants.KEY_MESSAGE_URL, paramStringMessage.isFromCache());
+
+ // playVoice(context,paramStringMessage.isFromCache());
+ context.sendBroadcast(intent);
+ }
+
+ if (Config.noVoiceNotifyDialog == false) {
+
+ Intent intent = new Intent();
+ //显示提示窗口
+ intent.setAction(DIALOG_ACTION);
+ intent.putExtra("contact", (Parcelable) param2Contact);
+ context.sendBroadcast(intent);
+ }
- }else if ("StartMonitor".equals(paramStringMessage.cmd())) {
+ }
+ }
+ }, 500);
- String recordfilepath=Util.getRecordfilePath(mRuntime, TimeUtil.getSystemTime3());
- int recordtime=Integer.parseInt(paramStringMessage.isFromCache().trim());
- mSendMSGHandler.post(new Runnable() {
- @Override
- public void run() {
- AudioService.getInstance().startRecord(recordfilepath);
- }
- });
- mSendMSGHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- AudioService.getInstance().stopRecord();
- ICLogger.i("Monitor Record to send "+recordfilepath);
- //创建voiceConent并添加到数据
- /**
- * * * 1 语音—— 1.监听语音 * 2.SOS语音 * 3.扩展
- * * * 2 图片—— 1.签到图片 * 2.指令图片 * 3.设备图片 * 4.扩展
- */
- final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", recordfilepath,1,1);
-
- // 把voiceContent拆解成1024的分包
- Util.parseToVoicePacketSent(voiceContent);
- //trigger 分包发送
- if (CoreService.getInstance().getConnection()!=null)
- CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
+ return true;
+ } else if ("findDev".equals(paramStringMessage.cmd())) {
+
+ mSendMSGHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ final Context context = (Deliver.this.mRuntime.getContextProxy()).context;
+ Intent intent = new Intent();
+ ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED + " " + paramStringMessage.isFromCache());
+ //显示提示窗口
+ intent.setAction(DIALOG_ACTION);
+ intent.putExtra("findDev", "Find Device");
+ context.sendBroadcast(intent);
+ }
+ }, 500);
+
+ return true;
+ } else if ("takephoto".equals(paramStringMessage.cmd())) {
+
+ mSendMSGHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ final Context context = (Deliver.this.mRuntime.getContextProxy()).context;
+ Intent intent = new Intent();
+ ICLogger.d(Constants.ACTION_MESSAGE_RECEIVED + " " + paramStringMessage.isFromCache());
+ //显示提示窗口
+ intent.setAction(DIALOG_ACTION);
+ intent.putExtra("takephoto", "Take Photo !");
+ context.sendBroadcast(intent);
+ }
+ }, 500);
+
+ return true;
+
+ } else if ("StartMonitor".equals(paramStringMessage.cmd())) {
+
+ String recordfilepath = Util.getRecordfilePath(mRuntime, TimeUtil.getSystemTime3());
+ int recordtime = Integer.parseInt(paramStringMessage.isFromCache().trim());
+ mSendMSGHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ AudioService.getInstance().startRecord(recordfilepath);
+ }
+ });
+ mSendMSGHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ AudioService.getInstance().stopRecord();
+ ICLogger.i("Monitor Record to send " + recordfilepath);
+ //创建voiceConent并添加到数据
+ /**
+ * * * 1 语音—— 1.监听语音 * 2.SOS语音 * 3.扩展
+ * * * 2 图片—— 1.签到图片 * 2.指令图片 * 3.设备图片 * 4.扩展
+ */
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, "123", recordfilepath, 1, 1);
+
+ // 把voiceContent拆解成1024的分包
+ Util.parseToVoicePacketSent(voiceContent);
+ //trigger 分包发送
+ if (CoreService.getInstance().getConnection() != null)
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
+ }
+ }, recordtime * 1000);
+
+ return true;
}
- },recordtime*1000);
- return true;
+ return false;
}
- return false;
- }
-
-
-
- private void playVoice(Context paramContext,String voicefile) {
- AudioService.getInstance().play(voicefile);
- }
-
- public static void releaseOneWakeLock() {
- if (ReceiveWakeLock == null) {
- ICLogger.i("ReceiveWakeLock 没有加锁");
- return;
- }
- if (!wakeLockWifiList && !wakeLockWifiSet && ReceiveWakeLock.isHeld()) {
- ReceiveWakeLock.release();
- ReceiveWakeLock = null;
- }
- }
-
- public void releaseReceiveWakeLock() {
- if (this.ReceiveWakeLock == null) {
- ICLogger.i("ReceiveWakeLock 没有加锁");
- return;
- }
- if (this.ReceiveWakeLock.isHeld()) {
- this.ReceiveWakeLock.release();
- this.wakeLockWifiList = false;
- this.wakeLockWifiSet = false;
- this.ReceiveWakeLock = null;
- }
- }
- public static void connectToWifi(String ssid,String pwd,String encryptType){
- int networkid;
- final WifiManager wifiManager = mRuntime.getContextProxy().getWifiManager();
- wifiEnabled = wifiManager.isWifiEnabled();
- if (!wifiEnabled)
- {
- //没开就打开wifi
- Util.turnOnWifiForConnect(mRuntime.getContextProxy().context, mRuntime);
- }
- if (Util.isConnectWifi(mRuntime.getContextProxy().context)) {
- networkid = wifiManager.getConnectionInfo().getNetworkId();
- wifiManager.disconnect();
- wifiManager.removeNetwork(networkid);
- wifiManager.saveConfiguration();
+
+ private void playVoice(Context paramContext, String voicefile) {
+ AudioService.getInstance().play(voicefile);
}
- Deliver.isAppSetWifi = 1;
- WifiConfiguration wifiConfiguration = Util.GetconfigWifiInfo(mRuntime.getContextProxy().context, ssid, pwd, encryptType);
- networkid = wifiConfiguration.networkId;
- wifiManager.removeNetwork(networkid);
- wifiManager.saveConfiguration();
- networkid = wifiManager.addNetwork(wifiConfiguration);
- if (Util.connectWifiByReflectMethod(mRuntime.getContextProxy().context, networkid) == null && !wifiManager.enableNetwork(networkid, true)) {
- ICLogger.i("连接失败 3");
- SystemClock.sleep(3000L);
- String isUserOpen = Util.getSystemProperties("persist.sys.ic.wifi_enable", "false");
- ICLogger.d("is open by user == > " + isUserOpen);
- if ("false".equals(isUserOpen)) {
- //用户手动打开的,那么就不关闭wifi了
- wifiManager.setWifiEnabled(false);
- }
- wakeLockWifiSet = false;
- releaseOneWakeLock();
- WifiListWakeLock = Deliver.WakeLockForGetWifiList(mRuntime);
-
- return;
+ public static void releaseOneWakeLock() {
+ if (ReceiveWakeLock == null) {
+ ICLogger.i("ReceiveWakeLock 没有加锁");
+ return;
+ }
+ if (!wakeLockWifiList && !wakeLockWifiSet && ReceiveWakeLock.isHeld()) {
+ ReceiveWakeLock.release();
+ ReceiveWakeLock = null;
+ }
}
- if(!wifiEnabled ){
- //原来wifi没开就关闭wifi
- Util.turnOffWifiForSleep(mRuntime.getContextProxy().context, mRuntime);
+ public void releaseReceiveWakeLock() {
+ if (this.ReceiveWakeLock == null) {
+ ICLogger.i("ReceiveWakeLock 没有加锁");
+ return;
+ }
+ if (this.ReceiveWakeLock.isHeld()) {
+ this.ReceiveWakeLock.release();
+ this.wakeLockWifiList = false;
+ this.wakeLockWifiSet = false;
+ this.ReceiveWakeLock = null;
+ }
}
- }
- public void setWakeupAlarm(Runtime paramRuntime) {
- AlarmManager alarmManager = (AlarmManager)(paramRuntime.getContextProxy()).context.getSystemService(Context.ALARM_SERVICE);
- Intent intent = new Intent((paramRuntime.getContextProxy()).context, CoreService.class);
- intent.setAction(ACTION_WAKEUP_ALARM);
- PendingIntent pendingIntent = PendingIntent.getService((paramRuntime.getContextProxy()).context, 0, intent, FLAG_UPDATE_CURRENT);
- alarmManager.cancel(pendingIntent);
- long l = SystemClock.elapsedRealtime();
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append("SDK_INT=");
- stringBuilder.append(Build.VERSION.SDK_INT);
- stringBuilder.append(",m=,");
- stringBuilder.append(23);
- stringBuilder.append(",kitkat=");
- stringBuilder.append(19);
- ICLogger.i(stringBuilder.toString());
- if (Build.VERSION.SDK_INT >= 19) {
- alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + 10000L, pendingIntent);
- return;
- }
- alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + 10000L, pendingIntent);
- }
-
- class ConWifiReceiver extends BroadcastReceiver {
- ConWifiReceiver() {
+ public static void connectToWifi(String ssid, String pwd, String encryptType) {
+ int networkid;
+ final WifiManager wifiManager = mRuntime.getContextProxy().getWifiManager();
+ wifiEnabled = wifiManager.isWifiEnabled();
+ if (!wifiEnabled) {
+ //没开就打开wifi
+ Util.turnOnWifiForConnect(mRuntime.getContextProxy().context, mRuntime);
+ }
+ if (Util.isConnectWifi(mRuntime.getContextProxy().context)) {
+ networkid = wifiManager.getConnectionInfo().getNetworkId();
+ wifiManager.disconnect();
+ wifiManager.removeNetwork(networkid);
+ wifiManager.saveConfiguration();
+ }
+
+ Deliver.isAppSetWifi = 1;
+ WifiConfiguration wifiConfiguration = Util.GetconfigWifiInfo(mRuntime.getContextProxy().context, ssid, pwd, encryptType);
+ networkid = wifiConfiguration.networkId;
+ wifiManager.removeNetwork(networkid);
+ wifiManager.saveConfiguration();
+ networkid = wifiManager.addNetwork(wifiConfiguration);
+ if (Util.connectWifiByReflectMethod(mRuntime.getContextProxy().context, networkid) == null && !wifiManager.enableNetwork(networkid, true)) {
+ ICLogger.i("连接失败 3");
+ SystemClock.sleep(3000L);
+ String isUserOpen = Util.getSystemProperties("persist.sys.ic.wifi_enable", "false");
+ ICLogger.d("is open by user == > " + isUserOpen);
+ if ("false".equals(isUserOpen)) {
+ //用户手动打开的,那么就不关闭wifi了
+ wifiManager.setWifiEnabled(false);
+ }
+ wakeLockWifiSet = false;
+ releaseOneWakeLock();
+ WifiListWakeLock = Deliver.WakeLockForGetWifiList(mRuntime);
+
+ return;
+ }
+
+ if (!wifiEnabled) {
+ //原来wifi没开就关闭wifi
+ Util.turnOffWifiForSleep(mRuntime.getContextProxy().context, mRuntime);
+ }
+
}
- public void onReceive(final Context var1, Intent var2) {
- String var3 = var2.getAction();
- StringBuilder var4 = new StringBuilder();
- var4.append(" receive action=");
- var4.append(var3);
- var4.append(" isAppSetWifi=");
- var4.append(Deliver.isAppSetWifi);
- ICLogger.i(var4.toString());
- if (var3.equals("android.net.conn.CONNECTIVITY_CHANGE")) {
- if (Deliver.isAppSetWifi == 0) {
- return;
+ public void setWakeupAlarm(Runtime paramRuntime) {
+ AlarmManager alarmManager = (AlarmManager) (paramRuntime.getContextProxy()).context.getSystemService(Context.ALARM_SERVICE);
+ Intent intent = new Intent((paramRuntime.getContextProxy()).context, CoreService.class);
+ intent.setAction(ACTION_WAKEUP_ALARM);
+ PendingIntent pendingIntent = PendingIntent.getService((paramRuntime.getContextProxy()).context, 0, intent, FLAG_UPDATE_CURRENT);
+ alarmManager.cancel(pendingIntent);
+ long l = SystemClock.elapsedRealtime();
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append("SDK_INT=");
+ stringBuilder.append(Build.VERSION.SDK_INT);
+ stringBuilder.append(",m=,");
+ stringBuilder.append(23);
+ stringBuilder.append(",kitkat=");
+ stringBuilder.append(19);
+ ICLogger.i(stringBuilder.toString());
+ if (Build.VERSION.SDK_INT >= 19) {
+ alarmManager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + 10000L, pendingIntent);
+ return;
}
+ alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, l + 10000L, pendingIntent);
+ }
- if (Deliver.isAppSetWifi == 1) {
- Deliver.isAppSetWifi = 0;
- if (Deliver.this.delayHandler != null) {
- Deliver.this.delayHandler.removeCallbacks(Deliver.this.delayTh);
- Deliver.this.delayHandler = null;
- }
+ class ConWifiReceiver extends BroadcastReceiver {
+ ConWifiReceiver() {
}
- WifiManager var5 = (WifiManager)var1.getSystemService(Context.WIFI_SERVICE);
- if (((ConnectivityManager)var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {
- ICLogger.i("连接成功");
- Deliver.isAppSetWifi = 0;
- Deliver.haveSendH42 = true;
- Deliver.this.mConnection.connect(Deliver.this.mRuntime.getHost(), Deliver.this.mRuntime.getPort());
- if (Deliver.this.delayHandler != null) {
- Deliver.this.delayHandler.removeCallbacks(Deliver.this.delayTh);
- Deliver.this.delayHandler = null;
- }
-
- var1.unregisterReceiver(Deliver.this.mMyWifiReceiver);
- Deliver.this.mMyWifiReceiver = null;
- Deliver.this.wakeLockWifiSet = false;
- Deliver.this.releaseOneWakeLock();
- Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);
- } else {
- StringBuilder var6 = new StringBuilder();
- var6.append("连接失败 222 delayHandler=");
- var6.append(Deliver.this.delayHandler);
- ICLogger.i(var6.toString());
- Deliver.isAppSetWifi = 2;
- var5.reconnect();
- if (Deliver.this.delayHandler == null) {
- Deliver.this.delayHandler = new Handler();
- Deliver.this.delayTh = new Runnable() {
- public void run() {
- StringBuilder var1x = new StringBuilder();
- var1x.append("连接失败 超时 wifiEnabled=");
- var1x.append(Deliver.this.wifiEnabled);
- ICLogger.i(var1x.toString());
- if (Deliver.isAppSetWifi != 1) {
- Deliver.isAppSetWifi = 0;
- var1.unregisterReceiver(Deliver.this.mMyWifiReceiver);
- Deliver.this.mMyWifiReceiver = null;
- WifiManager var3 = (WifiManager)var1.getSystemService(Context.WIFI_SERVICE);
- if (((ConnectivityManager)var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {
- ICLogger.i("连接成功 1");
+ public void onReceive(final Context var1, Intent var2) {
+ String var3 = var2.getAction();
+ StringBuilder var4 = new StringBuilder();
+ var4.append(" receive action=");
+ var4.append(var3);
+ var4.append(" isAppSetWifi=");
+ var4.append(Deliver.isAppSetWifi);
+ ICLogger.i(var4.toString());
+ if (var3.equals("android.net.conn.CONNECTIVITY_CHANGE")) {
+ if (Deliver.isAppSetWifi == 0) {
+ return;
+ }
+
+ if (Deliver.isAppSetWifi == 1) {
+ Deliver.isAppSetWifi = 0;
+ if (Deliver.this.delayHandler != null) {
+ Deliver.this.delayHandler.removeCallbacks(Deliver.this.delayTh);
+ Deliver.this.delayHandler = null;
+ }
+ }
+
+ WifiManager var5 = (WifiManager) var1.getSystemService(Context.WIFI_SERVICE);
+ if (((ConnectivityManager) var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {
+ ICLogger.i("连接成功");
+ Deliver.isAppSetWifi = 0;
Deliver.haveSendH42 = true;
Deliver.this.mConnection.connect(Deliver.this.mRuntime.getHost(), Deliver.this.mRuntime.getPort());
+ if (Deliver.this.delayHandler != null) {
+ Deliver.this.delayHandler.removeCallbacks(Deliver.this.delayTh);
+ Deliver.this.delayHandler = null;
+ }
+
+ var1.unregisterReceiver(Deliver.this.mMyWifiReceiver);
+ Deliver.this.mMyWifiReceiver = null;
Deliver.this.wakeLockWifiSet = false;
Deliver.this.releaseOneWakeLock();
Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);
- } else {
- int var2 = var3.getConnectionInfo().getNetworkId();
- if (var2 != -1) {
- var3.disableNetwork(var2);
+ } else {
+ StringBuilder var6 = new StringBuilder();
+ var6.append("连接失败 222 delayHandler=");
+ var6.append(Deliver.this.delayHandler);
+ ICLogger.i(var6.toString());
+ Deliver.isAppSetWifi = 2;
+ var5.reconnect();
+ if (Deliver.this.delayHandler == null) {
+ Deliver.this.delayHandler = new Handler();
+ Deliver.this.delayTh = new Runnable() {
+ public void run() {
+ StringBuilder var1x = new StringBuilder();
+ var1x.append("连接失败 超时 wifiEnabled=");
+ var1x.append(Deliver.this.wifiEnabled);
+ ICLogger.i(var1x.toString());
+ if (Deliver.isAppSetWifi != 1) {
+ Deliver.isAppSetWifi = 0;
+ var1.unregisterReceiver(Deliver.this.mMyWifiReceiver);
+ Deliver.this.mMyWifiReceiver = null;
+ WifiManager var3 = (WifiManager) var1.getSystemService(Context.WIFI_SERVICE);
+ if (((ConnectivityManager) var1.getSystemService(Context.CONNECTIVITY_SERVICE)).getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected()) {
+ ICLogger.i("连接成功 1");
+ Deliver.haveSendH42 = true;
+ Deliver.this.mConnection.connect(Deliver.this.mRuntime.getHost(), Deliver.this.mRuntime.getPort());
+ Deliver.this.wakeLockWifiSet = false;
+ Deliver.this.releaseOneWakeLock();
+ Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);
+ } else {
+ int var2 = var3.getConnectionInfo().getNetworkId();
+ if (var2 != -1) {
+ var3.disableNetwork(var2);
// ServiceUtil.offerQueue(API.H42(Deliver.this.mRuntime, "3"));
- Deliver.this.wakeLockWifiSet = false;
- Deliver.this.releaseOneWakeLock();
- Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);
- } else {
- ICLogger.i("连接失败 2-2");
+ Deliver.this.wakeLockWifiSet = false;
+ Deliver.this.releaseOneWakeLock();
+ Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);
+ } else {
+ ICLogger.i("连接失败 2-2");
// ServiceUtil.offerQueue(API.H42(Deliver.this.mRuntime, "3"));
- Deliver.this.wakeLockWifiSet = false;
- Deliver.this.releaseOneWakeLock();
- Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);
- }
-
- if (!Deliver.this.wifiEnabled) {
- var3.setWifiEnabled(false);
+ Deliver.this.wakeLockWifiSet = false;
+ Deliver.this.releaseOneWakeLock();
+ Deliver.WifiListWakeLock = Deliver.WakeLockForGetWifiList(Deliver.this.mRuntime);
+ }
+
+ if (!Deliver.this.wifiEnabled) {
+ var3.setWifiEnabled(false);
+ }
+ }
+
+ Deliver.this.delayHandler = null;
+ }
+ }
+ };
+ Deliver.this.delayHandler.postDelayed(Deliver.this.delayTh, 30000L);
}
- }
-
- Deliver.this.delayHandler = null;
}
- }
- };
- Deliver.this.delayHandler.postDelayed(Deliver.this.delayTh, 30000L);
- }
- }
- }
+ }
+ }
}
- }
-
+
}
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Handler;
+import android.os.HandlerThread;
import android.os.Message;
import android.os.Messenger;
import android.os.PowerManager;
-import android.util.Log;
import com.enqualcomm.support.Config;
import com.enqualcomm.support.Constants;
import com.enqualcomm.support.CoreService;
import com.enqualcomm.support.LocationClient;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
-import com.enqualcomm.support.bean.StringMessage;
-import com.enqualcomm.support.utils.ICHttpUtil;
-import com.enqualcomm.support.utils.Util;
-import com.ic.jni.ICJniUtils;
-import com.ic.protocols.protocolAPIHelper;
import com.enqualcomm.support.bean.Runtime;
+import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.heartRateStatus;
import com.enqualcomm.support.service.base.AbstractInvokeHandlerService;
import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.ICLogger;
-import com.enqualcomm.support.utils.NettyConnection;
import com.enqualcomm.support.utils.SimSignalUtil;
import com.enqualcomm.support.utils.TimeUtil;
+import com.enqualcomm.support.utils.Util;
+import com.ic.jni.ICJniUtils;
+import com.ic.protocols.protocolAPIHelper;
import java.util.Random;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import static com.enqualcomm.support.Constants.key_spo2;
public class HeartRateManager extends AbstractInvokeHandlerService implements SensorEventListener {
- private int mNetworkType;
+ private int mNetworkType;
- private SimSignalUtil mSignalUtil;
+ private SimSignalUtil mSignalUtil;
- private Runtime runtime;
- private Connection connection;
+ private Runtime runtime;
+ private Connection connection;
- private ScheduledThreadPoolExecutor timerPPG=null;
- private static Handler mHandler=null;
+ private ScheduledThreadPoolExecutor timerPPG = null;
+ private static Handler mHandler = null;
- private void checkWarning(){
- //ppg
- if(runtime.getHRS().ppg_threshold_max>0 && runtime.getHRS().getPPG() >runtime.getHRS().ppg_threshold_max){
+ private void checkWarning() {
+ //ppg
+ if (runtime.getHRS().ppg_threshold_max > 0 && runtime.getHRS().getPPG() > runtime.getHRS().ppg_threshold_max) {
- if(runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH)) {
- //trigger AP10 报警定位
+ if (runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_HIGH)) {
+ //trigger AP10 报警定位
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
- }
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
+ }
- }else if ( runtime.getHRS().ppg_threshold_min>0 && runtime.getHRS().getPPG()<runtime.getHRS().ppg_threshold_min) {
- if( runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW)) {
- //trigger AP10 报警定位
+ } else if (runtime.getHRS().ppg_threshold_min > 0 && runtime.getHRS().getPPG() < runtime.getHRS().ppg_threshold_min) {
+ if (runtime.setAlarmType(Runtime.AlarmType.ALARM_HEART_RATE_LOW)) {
+ //trigger AP10 报警定位
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
- }
- }
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
+ }
+ }
- //bph
- if(runtime.getHRS().bph_threshold_max>0 && runtime.getHRS().getBPH() >runtime.getHRS().bph_threshold_max){
+ //bph
+ if (runtime.getHRS().bph_threshold_max > 0 && runtime.getHRS().getBPH() > runtime.getHRS().bph_threshold_max) {
- if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH)) {
- //trigger AP10 报警定位
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
+ if (runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_HIGH)) {
+ //trigger AP10 报警定位
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- }
+ }
- }else if ( runtime.getHRS().bph_threshold_min>0 && runtime.getHRS().getBPH()<runtime.getHRS().bph_threshold_min) {
- if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW)) {
- //trigger AP10 报警定位
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
+ } else if (runtime.getHRS().bph_threshold_min > 0 && runtime.getHRS().getBPH() < runtime.getHRS().bph_threshold_min) {
+ if (runtime.setAlarmType(Runtime.AlarmType.ALARM_BPH_LOW)) {
+ //trigger AP10 报警定位
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- }
- }
+ }
+ }
- //bpl
- if(runtime.getHRS().bpl_threshold_max>0 && runtime.getHRS().getBPL() >runtime.getHRS().bpl_threshold_max){
+ //bpl
+ if (runtime.getHRS().bpl_threshold_max > 0 && runtime.getHRS().getBPL() > runtime.getHRS().bpl_threshold_max) {
- if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH)) {
- //trigger AP10 报警定位
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
+ if (runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_HIGH)) {
+ //trigger AP10 报警定位
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- }
+ }
- }else if ( runtime.getHRS().bpl_threshold_min>0 && runtime.getHRS().getBPL()<runtime.getHRS().bpl_threshold_min) {
- if(runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW)) {
- //trigger AP10 报警定位
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
+ } else if (runtime.getHRS().bpl_threshold_min > 0 && runtime.getHRS().getBPL() < runtime.getHRS().bpl_threshold_min) {
+ if (runtime.setAlarmType(Runtime.AlarmType.ALARM_BPL_LOW)) {
+ //trigger AP10 报警定位
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- }
+ }
+ }
}
- }
-
- private static final String HEART_ACTION = "com.ic.action.BLOOD_HEART";
- private void sendHeartBroadcast(int count,int spo2) {
- Intent pedIntent = new Intent();
- pedIntent.setAction(HEART_ACTION);
- pedIntent.putExtra("BLOOD_HEART", count);
- pedIntent.putExtra("BLOOD_SPO2", spo2);
- ICLogger.i("sendHeartBroadcast "+HEART_ACTION+" BLOOD_HEART "+count+" BLOOD_SPO2 "+spo2);
- runtime.getContextProxy().context.sendBroadcast(pedIntent);
- }
- public HeartRateManager(Runtime _runtime,Connection _connection){
- runtime=_runtime;
- connection=_connection;
- currentStat= heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;
- isTimerStarted=false;
- mSensorManager = (SensorManager) runtime.getContextProxy().context.getSystemService(SENSOR_SERVICE);
- mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
- mHandler = new Handler(EventLooperHandlerThread.makeLooper(HeartRateManager.class.getSimpleName()),new Handler.Callback() {
- @Override
- public boolean handleMessage(Message message) {
- switch (message.what) {
- case 100: {
- //只有检测PPG成功,且网络连接中才发送数据
- if (runtime.getHRS().getHeartrateWorkingStat() == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {
- runtime.getHRS().setLastTestTime(TimeUtil.getSystemTime3());
- //发送PPG给Launcher,显示在主界面用
- sendHeartBroadcast(runtime.getHRS().getPPG(),runtime.getHRS().getSpo2());
- if(Runtime.practising==true){
- ICLogger.i("自由锻炼中,设置测量心率! "+runtime.getHRS().getPPG()+","+runtime.getHRS().getBPH()+","+runtime.getHRS().getBPL()+","+runtime.getHRS().getSpo2());
- Runtime.healthInfo.setPPGECGData(runtime.getHRS().getPPG(),runtime.getHRS().getBPH(),runtime.getHRS().getBPL(),runtime.getHRS().getSpo2());
-
- //因为心率和定位用时都比温度多,但是定位和心率不一定谁用时多,所以两个都需要检测是否结束
- if(Runtime.healthInfo.check_info_item_finished()){
- Runtime.healthInfo.appendBuffer(Runtime.healthInfo.getHealthInfoString());
- ICLogger.i("自由锻炼中,测量完成,添加一条记录! 当前条数 "+Runtime.healthInfo.getInfoCount());
- Runtime.healthInfo.reset();
- }
- if(Runtime.healthInfo.getInfoCount()>=(30-1)){
- //超过30次发送数据给服务器
- ICLogger.i("自由锻炼中,发送数据给服务器 "+Runtime.healthInfo.getBufferData().length);
- mHandler.post(new Runnable() {
- @Override
- public void run() {
+ private static final String HEART_ACTION = "com.ic.action.BLOOD_HEART";
+
+ private void sendHeartBroadcast(int count, int spo2) {
+ Intent pedIntent = new Intent();
+ pedIntent.setAction(HEART_ACTION);
+ pedIntent.putExtra("BLOOD_HEART", count);
+ pedIntent.putExtra("BLOOD_SPO2", spo2);
+ ICLogger.i("sendHeartBroadcast " + HEART_ACTION + " BLOOD_HEART " + count + " BLOOD_SPO2 " + spo2);
+ runtime.getContextProxy().context.sendBroadcast(pedIntent);
+ }
+
+ public HeartRateManager(Runtime _runtime, Connection _connection) {
+ runtime = _runtime;
+ connection = _connection;
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;
+ isTimerStarted = false;
+ mSensorManager = (SensorManager) runtime.getContextProxy().context.getSystemService(SENSOR_SERVICE);
+ mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);
+ HandlerThread handlerThread = new HandlerThread("ic:heart-handler-thread");
+ handlerThread.start();
+ mHandler = new Handler(handlerThread.getLooper(), message -> {
+ switch (message.what) {
+ case 100: {
+ //只有检测PPG成功,且网络连接中才发送数据
+ if (runtime.getHRS().getHeartrateWorkingStat() == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {
+ runtime.getHRS().setLastTestTime(TimeUtil.getSystemTime3());
+ //发送PPG给Launcher,显示在主界面用
+ sendHeartBroadcast(runtime.getHRS().getPPG(), runtime.getHRS().getSpo2());
+ if (Runtime.practising == true) {
+ ICLogger.i("自由锻炼中,设置测量心率! " + runtime.getHRS().getPPG() + "," + runtime.getHRS().getBPH() + "," + runtime.getHRS().getBPL() + "," + runtime.getHRS().getSpo2());
+ Runtime.healthInfo.setPPGECGData(runtime.getHRS().getPPG(), runtime.getHRS().getBPH(), runtime.getHRS().getBPL(), runtime.getHRS().getSpo2());
+
+ //因为心率和定位用时都比温度多,但是定位和心率不一定谁用时多,所以两个都需要检测是否结束
+ if (Runtime.healthInfo.check_info_item_finished()) {
+ Runtime.healthInfo.appendBuffer(Runtime.healthInfo.getHealthInfoString());
+ ICLogger.i("自由锻炼中,测量完成,添加一条记录! 当前条数 " + Runtime.healthInfo.getInfoCount());
+ Runtime.healthInfo.reset();
+ }
+ if (Runtime.healthInfo.getInfoCount() >= (30 - 1)) {
+ //超过30次发送数据给服务器
+ ICLogger.i("自由锻炼中,发送数据给服务器 " + Runtime.healthInfo.getBufferData().length);
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
// ICHttpUtil.uploadData(Runtime.healthInfo.getBufferDataStr(),runtime,TimeUtil.getSystemTime2(),null);
- Deliver.sendLocationMSG(protocolAPIHelper.getPRACTICE());
- //发送过后重置
- Runtime.healthInfo.resetBuffer();
+ Deliver.sendLocationMSG(protocolAPIHelper.getPRACTICE());
+ //发送过后重置
+ Runtime.healthInfo.resetBuffer();
+ }
+ });
+ }
+ } else {
+ StringMessage PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(runtime);
+ //发送给EQC服务器的
+ sendBroadcastPPGResult();
+ //因为协议中没有时间变量,所以只能实时传输,如果恰巧没有网络也只能丢弃,有时间变量的话,可以考虑通过deliver的buffer来进行缓存发送
+ if (PPGDATA == null) {
+ StringMessage ppgd = protocolAPIHelper.getPPG_MSG(runtime.getHRS().getPPG(), runtime);
+ StringMessage bloodd = protocolAPIHelper.getBlood_MSG(runtime.getHRS().getBPH(), runtime.getHRS().getBPL(), runtime);
+ StringMessage oxd = protocolAPIHelper.getOxygen_MSG(runtime.getHRS().getSpo2(), runtime);
+ Deliver.sendLocationMSG(ppgd);
+ Deliver.sendLocationMSG(bloodd);
+ Deliver.sendLocationMSG(oxd);
+
+ checkWarning();
+
+ } else {
+ Deliver.sendLocationMSG(PPGDATA);
+ ICLogger.i("Send PPG " + PPGDATA.isFromCache());
+ checkWarning();
+ }
+ }
+
+ } else {
+ ICLogger.i("PPG Failed for Timeout!");
}
- });
+ stopPPG();
}
- }else {
- StringMessage PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(runtime);
- //发送给EQC服务器的
- sendBroadcastPPGResult();
- //因为协议中没有时间变量,所以只能实时传输,如果恰巧没有网络也只能丢弃,有时间变量的话,可以考虑通过deliver的buffer来进行缓存发送
- if (PPGDATA == null) {
- StringMessage ppgd = protocolAPIHelper.getPPG_MSG(runtime.getHRS().getPPG(), runtime);
- StringMessage bloodd = protocolAPIHelper.getBlood_MSG(runtime.getHRS().getBPH(), runtime.getHRS().getBPL(), runtime);
- StringMessage oxd = protocolAPIHelper.getOxygen_MSG(runtime.getHRS().getSpo2(), runtime);
- Deliver.sendLocationMSG(ppgd);
- Deliver.sendLocationMSG(bloodd);
- Deliver.sendLocationMSG(oxd);
-
- checkWarning();
+ break;
+ case 200: {
+ startPPG();
+ }
+ break;
+ case 300: {
+ stopPPG();
+ }
+ break;
+ }
+ return false;
+ });
+ }
+
+
+ private void sendBroadcastPPGResult() {
+ Intent intent = new Intent(ACTION_BROADCAST_PPG);
+ intent.putExtra("ppg", runtime.getHRS().getPPG());
+ intent.putExtra("bph", runtime.getHRS().getBPH());
+ intent.putExtra("bpl", runtime.getHRS().getBPL());
+ intent.putExtra("spo2", runtime.getHRS().getSpo2());
+ intent.putExtra("time", runtime.getHRS().getTestTime());
+ runtime.getContextProxy().context.sendBroadcast(intent);
+ }
+
+ private SensorManager mSensorManager;
+ private Sensor mHeartRate;
+ int PPG;
+ int BPH;
+ int BPL;
+ int SPo2;
+ boolean isWared;
+ boolean isPPGTesting;
+ static boolean isTimerStarted;
+ public static heartRateStatus.HEARTRATE_WORKINGSTAT currentStat;
+ static int delayCount;
+ static int testCount;
+ static int notWaredCount;
+ static int noPPGCount;
+ private final int MAX_TESTTIMES = 30000;//最大延迟测试时间为30秒
+
+ public int randomOxygenValue() {
+ int min = 95;
+ int max = 99;
+ int ret = min + ((int) (new Random().nextFloat() * (max - min)));
+ return ret;
+ }
+
+ public void doPPGtest() {
+
+ int hrsType = ICJniUtils.isPPGavailable();
+ if (hrsType > 0 && hrsType != ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {
+ PPG = ICJniUtils.getPPG();//调用底层函数保证状态更新。
+ BPH = ICJniUtils.getHighBloodPressure();
+ BPL = ICJniUtils.getLowBloodPressure();
+ SPo2 = ICJniUtils.getSPO2();
+ if (SPo2 == 0) {
+ SPo2 = randomOxygenValue();
+ }
+ isWared = (ICJniUtils.isWeared() == 1);
+ isPPGTesting = (ICJniUtils.isPPGStarted() == 1);
+ } else {
+ isPPGTesting = true;
+ }
+ ICLogger.i("PPG TESTING=" + isPPGTesting + ", isWared=" + isWared + ", PPG=" + PPG + ", BPH=" + BPH + ", BPL=" + BPL + ", SPo2=" + SPo2);
+ if (isPPGTesting) {
+ if (isWared) {
+ if (PPG > 0) {
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS;
} else {
- Deliver.sendLocationMSG(PPGDATA);
- ICLogger.i("Send PPG " + PPGDATA.isFromCache());
- checkWarning();
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_WARED_AND_TESTING;
}
- }
-
} else {
- ICLogger.i("PPG Failed for Timeout!");
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED;
}
- stopPPG();
- }
- break;
- case 200: {
- startPPG();
- }
- break;
- case 300: {
- stopPPG();
- }
- break;
+ } else {
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;
}
- return false;
- }
- });
-
- }
-
-
- private void sendBroadcastPPGResult(){
- Intent intent=new Intent(ACTION_BROADCAST_PPG);
- intent.putExtra("ppg",runtime.getHRS().getPPG());
- intent.putExtra("bph",runtime.getHRS().getBPH());
- intent.putExtra("bpl",runtime.getHRS().getBPL());
- intent.putExtra("spo2",runtime.getHRS().getSpo2());
- intent.putExtra("time",runtime.getHRS().getTestTime());
- runtime.getContextProxy().context.sendBroadcast(intent);
- }
-
- private SensorManager mSensorManager;
- private Sensor mHeartRate;
- int PPG;
- int BPH;
- int BPL;
- int SPo2;
- boolean isWared ;
- boolean isPPGTesting ;
- static boolean isTimerStarted;
- public static heartRateStatus.HEARTRATE_WORKINGSTAT currentStat;
- static int delayCount;
- static int testCount;
- static int notWaredCount;
- static int noPPGCount;
- private final int MAX_TESTTIMES=30000;//最大延迟测试时间为30秒
-
- public int randomOxygenValue() {
- int min = 95;
- int max = 99;
- int ret=min + ((int) (new Random().nextFloat() * (max - min)));
- return ret;
- }
-
- public void doPPGtest(){
-
- int hrsType=ICJniUtils.isPPGavailable();
- if (hrsType>0 && hrsType != ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {
- PPG = ICJniUtils.getPPG();//调用底层函数保证状态更新。
- BPH = ICJniUtils.getHighBloodPressure();
- BPL = ICJniUtils.getLowBloodPressure();
- SPo2 = ICJniUtils.getSPO2();
- if(SPo2==0){
- SPo2=randomOxygenValue();
- }
- isWared = (ICJniUtils.isWeared() == 1);
- isPPGTesting = (ICJniUtils.isPPGStarted() == 1);
- }else{
- isPPGTesting=true;
- }
- ICLogger.i("PPG TESTING="+isPPGTesting+", isWared="+isWared+", PPG="+PPG+", BPH="+BPH+", BPL="+BPL+", SPo2="+SPo2);
- if (isPPGTesting){
- if (isWared ) {
- if (PPG > 0) {
- currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS;
+
+
+ if (currentStat == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED) {
+ notWaredCount--;
+ if (notWaredCount < 0) { //没有佩戴次数到限制后,停止检测
+ ICLogger.i("HEARTRATE_NOTWARED 超过时限,取消检测报告!");
+ stopPPG();
+ }
+ } else if (currentStat == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_WARED_AND_TESTING) {
+ noPPGCount--;
+ if (noPPGCount < 0) { //没有佩戴次数到限制后,停止检测
+ ICLogger.i("HEARTRATE WARED And Testing (Wared=1 PPG=0)超过时限,取消检测报告!");
+ stopPPG();
+ }
+ }
+
+
+ if (currentStat == heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS) {
+ runtime.getHRS().setLastHeartrate(PPG, BPH, BPL, SPo2);
+ delayCount--;
+ if (delayCount < 0) //达到延迟时间后,停止检测并发送数据
+ sendAndStopPPG();
+
} else {
- currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_WARED_AND_TESTING;
+ runtime.getHRS().setLastHeartrate(0, 0, 0, 0);
+ }
+ runtime.getHRS().setHeartrateStat(currentStat);
+
+
+ testCount--;
+ if (testCount < 0) {
+ ICLogger.i("PPG 超过 " + MAX_TESTTIMES + "秒 未能得出结果,取消检测报告!");
+ stopPPG();
}
- }else{
- currentStat= heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED;
- }
- }else{
- currentStat= heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_CLOSED;
- }
+ }
- if (currentStat== heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_NOTWARED){
- notWaredCount--;
- if( notWaredCount <0){ //没有佩戴次数到限制后,停止检测
- ICLogger.i("HEARTRATE_NOTWARED 超过时限,取消检测报告!");
- stopPPG();
- }
- }else if (currentStat== heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_WARED_AND_TESTING){
- noPPGCount--;
- if( noPPGCount <0){ //没有佩戴次数到限制后,停止检测
- ICLogger.i("HEARTRATE WARED And Testing (Wared=1 PPG=0)超过时限,取消检测报告!");
- stopPPG();
- }
+ private void sendAndStopPPG() {
+ //结束和发送数据
+ mHandler.sendEmptyMessage(100);
}
+ PowerManager.WakeLock mWakeLock = null;
- if (currentStat==heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_TEST_SUCCESS){
- runtime.getHRS().setLastHeartrate(PPG,BPH,BPL,SPo2);
- delayCount--;
- if (delayCount<0) //达到延迟时间后,停止检测并发送数据
- sendAndStopPPG();
+ public PowerManager.WakeLock getPPGWakeLock() {
+ mWakeLock = ((PowerManager) (runtime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, HeartRateManager.class.getSimpleName());
+ mWakeLock.acquire(30000L);
+ return mWakeLock;
+ }
- }else{
- runtime.getHRS().setLastHeartrate(0,0,0,0);
+ public void releaseWakeLock() {
+ if (mWakeLock != null && mWakeLock.isHeld()) {
+ mWakeLock.release();
+ }
+ mWakeLock = null;
}
- runtime.getHRS().setHeartrateStat(currentStat);
+ public void startPPG() {
+ int hrsType = ICJniUtils.isPPGavailable();
+ if (hrsType > 0 && (isTimerStarted == false)) {
+ currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_OPEN;
+ delayCount = 4;//检测成功后4秒发送数据
+ notWaredCount = 5; //初始化没有佩戴的检测次数5,连续5秒没有佩戴则取消检测
+ noPPGCount = 30;//即使佩戴了,但是30秒没有出结果,也认为无效
+ testCount = MAX_TESTTIMES;//测试MAX_TESTTIMES后没有结果也要强制退出
+ isTimerStarted = true;
+ getPPGWakeLock();
+ if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {
+ boolean ret = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_UI);
+ ICLogger.i("Heart Rate PPG_EGC_TYPE_IC66 opened ret :: " + ret);
- testCount--;
- if (testCount<0)
- {
- ICLogger.i("PPG 超过 "+MAX_TESTTIMES+"秒 未能得出结果,取消检测报告!");
- stopPPG();
- }
+ } else {
- }
-
- private void sendAndStopPPG(){
- //结束和发送数据
- mHandler.sendEmptyMessage(100);
- }
- PowerManager.WakeLock mWakeLock=null;
- public PowerManager.WakeLock getPPGWakeLock() {
- mWakeLock = ((PowerManager)(runtime.getContextProxy()).context.getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, HeartRateManager.class.getSimpleName());
- mWakeLock.acquire(30000L);
- return mWakeLock;
- }
-
- public void releaseWakeLock(){
- if (mWakeLock!=null && mWakeLock.isHeld()){
- mWakeLock.release();
+ int ret = ICJniUtils.enablePPG();
+ ICLogger.i("Start PPG test ret=" + ret);
+ timerPPG = new ScheduledThreadPoolExecutor(10);
+ timerPPG.scheduleAtFixedRate(new Runnable() {
+ @Override
+ public void run() {
+ doPPGtest();
+ }
+ }, 0, 1000, TimeUnit.MILLISECONDS); //1 秒更新一次数据
+
+ }
+ }
}
- mWakeLock=null;
- }
- public void startPPG(){
-
- int hrsType=ICJniUtils.isPPGavailable();
- if ( hrsType > 0 && (isTimerStarted == false) ) {
- currentStat = heartRateStatus.HEARTRATE_WORKINGSTAT.HEARTRATE_OPEN;
- delayCount = 4;//检测成功后4秒发送数据
- notWaredCount = 5; //初始化没有佩戴的检测次数5,连续5秒没有佩戴则取消检测
- noPPGCount = 30;//即使佩戴了,但是30秒没有出结果,也认为无效
- testCount = MAX_TESTTIMES;//测试MAX_TESTTIMES后没有结果也要强制退出
- isTimerStarted = true;
- getPPGWakeLock();
- if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {
-
- boolean ret = mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_UI);
- ICLogger.i( "Heart Rate PPG_EGC_TYPE_IC66 opened ret :: " + ret);
-
- } else {
-
- int ret=ICJniUtils.enablePPG();
- ICLogger.i("Start PPG test ret="+ret);
- timerPPG = new ScheduledThreadPoolExecutor(10);
- timerPPG.scheduleAtFixedRate(new Runnable() {
- @Override
- public void run() {
- doPPGtest();
- }
- }, 0, 1000, TimeUnit.MILLISECONDS); //1 秒更新一次数据
-
- }
+
+ public void stopPPG() {
+ if (isTimerStarted) {
+
+ int hrsType = ICJniUtils.isPPGavailable();
+ if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {
+ mSensorManager.unregisterListener(this);
+ ICLogger.i("Heart Rate PPG_EGC_TYPE_IC66 closed");
+ } else {
+ timerPPG.shutdownNow();
+ timerPPG.purge();
+ ICJniUtils.disablePPG();
+ }
+ isTimerStarted = false;
+ }
+
+ releaseWakeLock();
}
- }
-
- public void stopPPG(){
- if( isTimerStarted )
- {
-
- int hrsType=ICJniUtils.isPPGavailable();
- if (hrsType == ICJniUtils.PPG_EGC_SensorType.PPG_EGC_TYPE_IC66.ordinal()) {
- mSensorManager.unregisterListener(this);
- ICLogger.i( "Heart Rate PPG_EGC_TYPE_IC66 closed");
- }else {
- timerPPG.shutdownNow();
- timerPPG.purge();
- ICJniUtils.disablePPG();
- }
- isTimerStarted=false;
+
+ private void callback(Messenger paramMessenger, int paramInt) {
+ if (paramMessenger != null)
+ try {
+ paramMessenger.send(Message.obtain(null, paramInt));
+ return;
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
- releaseWakeLock();
- }
-
- private void callback(Messenger paramMessenger, int paramInt) {
- if (paramMessenger != null)
- try {
- paramMessenger.send(Message.obtain(null, paramInt));
- return;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- private BroadcastReceiver PPGStartReceiver = new BroadcastReceiver() {
- public void onReceive(Context param1Context, Intent param1Intent) {
- if (ACTION_HEATR_RATE_START.equals(param1Intent.getAction())) {
-
- //此消息来源于BroadCaset,收到开始测试的消息。
- //此时需要重置HeartRateDetect Timer
- //倘若有 参数 PPGTestCycle,则根据这个数值进行设置
- int ppgtestCycle=param1Intent.getIntExtra("PPGTestCycle",-1);
- if (ppgtestCycle >0){
- Config.setPPGTestCycle(runtime.getContextProxy().context,ppgtestCycle);
- runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context));
- ICLogger.i("get and set PPGTestCycle "+ppgtestCycle);
- }
- ICLogger.i("PPGStartReceiver ACTION_HEATR_RATE_START "+ppgtestCycle);
- CoreService.getInstance().setHeartRateDetectAlarm(runtime.getPpgTestCycle());
+ private BroadcastReceiver PPGStartReceiver = new BroadcastReceiver() {
+ public void onReceive(Context param1Context, Intent param1Intent) {
+ if (ACTION_HEATR_RATE_START.equals(param1Intent.getAction())) {
+
+ //此消息来源于BroadCaset,收到开始测试的消息。
+ //此时需要重置HeartRateDetect Timer
+ //倘若有 参数 PPGTestCycle,则根据这个数值进行设置
+ int ppgtestCycle = param1Intent.getIntExtra("PPGTestCycle", -1);
+ if (ppgtestCycle > 0) {
+ Config.setPPGTestCycle(runtime.getContextProxy().context, ppgtestCycle);
+ runtime.setPpgTestCycle(Config.getPPGTestCycle(runtime.getContextProxy().context));
+ ICLogger.i("get and set PPGTestCycle " + ppgtestCycle);
+ }
+ ICLogger.i("PPGStartReceiver ACTION_HEATR_RATE_START " + ppgtestCycle);
+ CoreService.getInstance().setHeartRateDetectAlarm(runtime.getPpgTestCycle());
// HeartRateManager.this.startPPG();
- }
+ }
+ }
+ };
+
+ public void regReceiver() {
+ //注册“ACTION_HEATR_RATE_START”的广播接收器,接收来自协议的设置广播
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(ACTION_HEATR_RATE_START);
+ runtime.getContextProxy().context.registerReceiver(PPGStartReceiver, intentFilter);
}
- };
- public void regReceiver(){
- //注册“ACTION_HEATR_RATE_START”的广播接收器,接收来自协议的设置广播
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction(ACTION_HEATR_RATE_START);
- runtime.getContextProxy().context.registerReceiver(PPGStartReceiver, intentFilter);
- }
- public void unRegReceiver(){
- runtime.getContextProxy().context.unregisterReceiver(PPGStartReceiver);
- }
+ public void unRegReceiver() {
+ runtime.getContextProxy().context.unregisterReceiver(PPGStartReceiver);
+ }
- public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {}
+ public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {
+ }
- public void onAttach(Connection paramConnection, Runtime paramRuntime) {
+ public void onAttach(Connection paramConnection, Runtime paramRuntime) {
// this.mSignalUtil = SimSignalUtil.getInstance((paramRuntime.getContextProxy()).context);
- regReceiver();
- }
+ regReceiver();
+ }
- public void onDetach(Connection paramConnection, Runtime paramRuntime) {
- unRegReceiver();
- }
+ public void onDetach(Connection paramConnection, Runtime paramRuntime) {
+ unRegReceiver();
+ }
- public boolean onUserRequest(Intent paramIntent, Connection paramConnection, final Runtime runtime) {
+ public boolean onUserRequest(Intent paramIntent, Connection paramConnection, final Runtime runtime) {
// String str = paramIntent.getAction();
// if (ACTION_HEATR_RATE_START.equals(str)) {
//// this.mSignalUtil = SimSignalUtil.getInstance((runtime.getContextProxy()).context);
// }
// startPPG();
// }
- return false;
- }
-
-public static void triggerPPGtest(){
- if(CoreService.getInstance()!=null)
- {
- if (CoreService.getInstance().getRuntime().Anti_off_flag==1) {
- ICLogger.i("未佩戴,取消 triggerPPGtest!");
- return;
+ return false;
+ }
+
+ public static void triggerPPGtest() {
+ if (CoreService.getInstance() != null) {
+ if (CoreService.getInstance().getRuntime().Anti_off_flag == 1) {
+ ICLogger.i("未佩戴,取消 triggerPPGtest!");
+ return;
+ }
+ }
+ if (mHandler != null) mHandler.sendEmptyMessage(200);
}
- }
- if (mHandler !=null) mHandler.sendEmptyMessage(200);
-}
- public static void stopPPGtest(){
- if (mHandler !=null) mHandler.sendEmptyMessage(300);
- }
+ public static void stopPPGtest() {
+ if (mHandler != null) mHandler.sendEmptyMessage(300);
+ }
- public boolean onUserRequest(Message message, Connection connection, final Runtime runtime) {
+ public boolean onUserRequest(Message message, Connection connection, final Runtime runtime) {
- int i = 1;
- switch (message.what) {
- case MSG_WHAT_PPG:
+ int i = 1;
+ switch (message.what) {
+ case MSG_WHAT_PPG:
- //接收UI测试后的结果,直接发送到服务器。
- Bundle bundle3 = message.getData();
- String ppg = bundle3.getString(key_ppg);
- String bph = bundle3.getString(key_bph);
- String bpl = bundle3.getString(key_bpl);
- String spo2 = bundle3.getString(key_spo2);
+ //接收UI测试后的结果,直接发送到服务器。
+ Bundle bundle3 = message.getData();
+ String ppg = bundle3.getString(key_ppg);
+ String bph = bundle3.getString(key_bph);
+ String bpl = bundle3.getString(key_bpl);
+ String spo2 = bundle3.getString(key_spo2);
- ICLogger.i("get MSG_WHAT_PPG ppg "+ppg + " , bph "+bph + " , bpl "+bpl + " , spo2 "+spo2);
- if (ppg == null || bph == null || bpl==null ||ppg.isEmpty()||bph.isEmpty()||bpl.isEmpty()) {
- ICLogger.i("MSG_WHAT_PPG Data is null or empty ! Skip!");
- callback(message.replyTo, Constants.RESULT_ERROR);
+ ICLogger.i("get MSG_WHAT_PPG ppg " + ppg + " , bph " + bph + " , bpl " + bpl + " , spo2 " + spo2);
+ if (ppg == null || bph == null || bpl == null || ppg.isEmpty() || bph.isEmpty() || bpl.isEmpty()) {
+ ICLogger.i("MSG_WHAT_PPG Data is null or empty ! Skip!");
+ callback(message.replyTo, Constants.RESULT_ERROR);
- return true;
- }
- if (spo2==null ||
- (spo2!=null &&
- ( (!Util.isNumeric(spo2.trim() )) ||
- (Util.isNumeric(spo2.trim() )&& Integer.parseInt(spo2.trim())<=0)
- )
- )
- )
- {
-
- int randomint = randomOxygenValue();
- spo2=String.valueOf(randomint);
- }
-
-
- if(Runtime.practising==true){
- ICLogger.i("自由锻炼中,设置测量心率!");
- Runtime.healthInfo.setPPGECGData(ppg,bph,bpl,spo2);
-
- //因为心率和定位用时都比温度多,但是定位和心率不一定谁用时多,所以两个都需要检测是否结束
- if(Runtime.healthInfo.check_info_item_finished()){
- Runtime.healthInfo.appendBuffer(Runtime.healthInfo.getHealthInfoString());
- Runtime.healthInfo.reset();
- }
- if(Runtime.healthInfo.getInfoCount()>=(30-1)){
- //超过30次发送数据给服务器
- ICLogger.i("发送数据给服务器 "+Runtime.healthInfo.getBufferData().length);
- mHandler.post(new Runnable() {
- @Override
- public void run() {
+ return true;
+ }
+ if (spo2 == null ||
+ (spo2 != null &&
+ ((!Util.isNumeric(spo2.trim())) ||
+ (Util.isNumeric(spo2.trim()) && Integer.parseInt(spo2.trim()) <= 0)
+ )
+ )
+ ) {
+
+ int randomint = randomOxygenValue();
+ spo2 = String.valueOf(randomint);
+ }
+
+
+ if (Runtime.practising == true) {
+ ICLogger.i("自由锻炼中,设置测量心率!");
+ Runtime.healthInfo.setPPGECGData(ppg, bph, bpl, spo2);
+
+ //因为心率和定位用时都比温度多,但是定位和心率不一定谁用时多,所以两个都需要检测是否结束
+ if (Runtime.healthInfo.check_info_item_finished()) {
+ Runtime.healthInfo.appendBuffer(Runtime.healthInfo.getHealthInfoString());
+ Runtime.healthInfo.reset();
+ }
+ if (Runtime.healthInfo.getInfoCount() >= (30 - 1)) {
+ //超过30次发送数据给服务器
+ ICLogger.i("发送数据给服务器 " + Runtime.healthInfo.getBufferData().length);
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
// ICHttpUtil.uploadData(Runtime.healthInfo.getBufferDataStr(),runtime,TimeUtil.getSystemTime2(),null);
- Deliver.sendLocationMSG(protocolAPIHelper.getPRACTICE());
- //发送过后重置
- Runtime.healthInfo.resetBuffer();
- }
- });
-
-
- }
- }else {
- try {
- StringMessage PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2), runtime);
- if (PPGDATA == null) {
- StringMessage ppgd = protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg), runtime);
- StringMessage bloodd = protocolAPIHelper.getBlood_MSG(Integer.parseInt(bph), Integer.parseInt(bpl), runtime);
- StringMessage oxd = protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2), runtime);
- Deliver.sendLocationMSG(ppgd);
- Deliver.sendLocationMSG(bloodd);
- Deliver.sendLocationMSG(oxd);
- } else {
- Deliver.sendLocationMSG(PPGDATA);
- ICLogger.i("Send PPG " + PPGDATA.isFromCache());
- }
- }catch (Exception e){
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
- }
+ Deliver.sendLocationMSG(protocolAPIHelper.getPRACTICE());
+ //发送过后重置
+ Runtime.healthInfo.resetBuffer();
+ }
+ });
+
+
+ }
+ } else {
+ try {
+ StringMessage PPGDATA = protocolAPIHelper.getPPG_ECG_MSG(Integer.parseInt(ppg), Integer.parseInt(bph), Integer.parseInt(bpl), Integer.parseInt(spo2), runtime);
+ if (PPGDATA == null) {
+ StringMessage ppgd = protocolAPIHelper.getPPG_MSG(Integer.parseInt(ppg), runtime);
+ StringMessage bloodd = protocolAPIHelper.getBlood_MSG(Integer.parseInt(bph), Integer.parseInt(bpl), runtime);
+ StringMessage oxd = protocolAPIHelper.getOxygen_MSG(Integer.parseInt(spo2), runtime);
+ Deliver.sendLocationMSG(ppgd);
+ Deliver.sendLocationMSG(bloodd);
+ Deliver.sendLocationMSG(oxd);
+ } else {
+ Deliver.sendLocationMSG(PPGDATA);
+ ICLogger.i("Send PPG " + PPGDATA.isFromCache());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
+ }
+ callback(message.replyTo, Constants.RESULT_OK);
+
+ default:
+ break;
}
- callback(message.replyTo, Constants.RESULT_OK);
- default:
- break;
+ return true;
}
- return true;
- }
-
- @Override
- public void onSensorChanged(SensorEvent sensorEvent) {
- float values[]=sensorEvent.values;
- int length = values.length;
- ICLogger.i( "onSensorChanged() is called "+length
- +" PPG = "+values[0]
- +", BPH = "+values[1]
- +", BPL = "+values[2]
- +", spo2 = "+values[3]
- +" , Weared = "+values[4]
- );
- PPG = (int)values[0];//调用底层函数保证状态更新。
- BPH = (int)values[1];
- BPL = (int)values[2];
- SPo2 = (int)values[3];
- isWared = ((int)values[4] == 2);
- isPPGTesting = true;// (ICJniUtils.isPPGStarted() == 1);
- doPPGtest();
- /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/
- }
-
- @Override
- public void onAccuracyChanged(Sensor sensor, int i) {
- ICLogger.i("onAccuracyChanged() is called "+sensor.getName()+" accuracy="+i);
- }
+ @Override
+ public void onSensorChanged(SensorEvent sensorEvent) {
+ float values[] = sensorEvent.values;
+ int length = values.length;
+ ICLogger.i("onSensorChanged() is called " + length
+ + " PPG = " + values[0]
+ + ", BPH = " + values[1]
+ + ", BPL = " + values[2]
+ + ", spo2 = " + values[3]
+ + " , Weared = " + values[4]
+ );
+ PPG = (int) values[0];//调用底层函数保证状态更新。
+ BPH = (int) values[1];
+ BPL = (int) values[2];
+ SPo2 = (int) values[3];
+ isWared = ((int) values[4] == 2);
+ isPPGTesting = true;// (ICJniUtils.isPPGStarted() == 1);
+ doPPGtest();
+ /*[0]---心率;[1]---血压高压;[2]---血压低压;[3]---血氧;[4]---佩戴检测(1--脱手,2--上手);*/
+ }
+
+ @Override
+ public void onAccuracyChanged(Sensor sensor, int i) {
+ ICLogger.i("onAccuracyChanged() is called " + sensor.getName() + " accuracy=" + i);
+ }
}
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Handler;
-import android.support.annotation.Keep;
+import android.os.HandlerThread;
+import android.util.Log;
-//import com.eiot.watch_lib.LauncherCtrl;
import com.enqualcomm.support.Config;
import com.enqualcomm.support.CoreService;
import com.enqualcomm.support.LocationClient;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
-import com.enqualcomm.support.utils.Util;
-import com.ic.protocols.protocolAPIHelper;
+import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.service.base.AbstractConnectionService;
import com.enqualcomm.support.utils.AlarmWakeUp;
import com.enqualcomm.support.utils.Connection;
import com.enqualcomm.support.utils.DeviceInfoUtil;
import com.enqualcomm.support.utils.ICLogger;
-import com.enqualcomm.support.utils.NettyConnection;
import com.enqualcomm.support.utils.NetworkObservable;
-import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.utils.SimSignalUtil;
+import com.enqualcomm.support.utils.Util;
+import com.ic.protocols.protocolAPIHelper;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import rx.Subscription;
import rx.functions.Action1;
+//import com.eiot.watch_lib.LauncherCtrl;
+
public class KeepAlive extends AbstractConnectionService {
- private static final long HEARTBEAT_TIMEOUT = 660000L;
- private static String TAG = KeepAlive.class.getSimpleName();
- public static boolean connectionError = false;
-
- public static boolean isConnected = false;
-
- private static boolean isInSleepMode = false;
-
- private static int mDisconnectByServerCount=0;
- Connection connection;
-
- Context mContext;
-
- NetworkObservable mNetworkObservable = new NetworkObservable();
-
- Runtime mRuntime;
-
- private ShutDownReceiver mShutDownReceiver;
-
- private Subscription mSubscription;
-
- private int reConnectionNumber;
-
-//服务器收到AP03 会返回BP03,如果PB03 规定时间没收到,则认为发送心跳失败,需要重发,
- private boolean is_heartBeat_send_success=false;
- private boolean is_login_send_success=false;
- private boolean is_ping_send_success=false;
-
- //如果重试5次还没有连接上,则需要重新断开连接重新连接服务器。
- private int hearBeatResendCount=0;
- private int MaxHeartbeatResendTime=6;
- //每次retry发送心跳的间隔为20秒
- private int heartBeatRetryTimeout=20;
-
- private Handler mHandler;
- //监测 心跳服务器响应的timer
- private ScheduledThreadPoolExecutor scheduled = null;
- private Runnable CheckSrvResponseTimerTask=new Runnable() {
- @Override
- public void run() {
- checkSrvResponse();
- }
- };
-
- public KeepAlive(){
- mHandler = new Handler(EventLooperHandlerThread.makeLooper(KeepAlive.class.getSimpleName()));
- }
- public void startResponseCheckTimer(){
- //联网再重试连接服务器
- if (SimSignalUtil.checkNet(mRuntime.getContextProxy().context) ) {
- stopResponseCheckTimer();
- if (scheduled == null) {
- scheduled = new ScheduledThreadPoolExecutor(10);
- }
- //开始检测重新计数
- hearBeatResendCount=0;
- //如果开始进行连接重
- // {
- // 试,证明网络断开的,那么KeepAlive也需要重连(心跳包)
- if (scheduled != null) {
- scheduled.scheduleAtFixedRate(CheckSrvResponseTimerTask , heartBeatRetryTimeout*1000, heartBeatRetryTimeout*1000,TimeUnit.MILLISECONDS); //delay 3秒先检查一次,然后每5秒重试一次
- }
+ private static final long HEARTBEAT_TIMEOUT = 660000L;
+ private static String TAG = KeepAlive.class.getSimpleName();
+ public static boolean connectionError = false;
+
+ public static boolean isConnected = false;
+
+ private static boolean isInSleepMode = false;
+
+ private static int mDisconnectByServerCount = 0;
+ Connection connection;
+
+ Context mContext;
+
+ NetworkObservable mNetworkObservable = new NetworkObservable();
+
+ Runtime mRuntime;
+
+ private ShutDownReceiver mShutDownReceiver;
+
+ private Subscription mSubscription;
+
+ private int reConnectionNumber;
+
+ //服务器收到AP03 会返回BP03,如果PB03 规定时间没收到,则认为发送心跳失败,需要重发,
+ private boolean is_heartBeat_send_success = false;
+ private boolean is_login_send_success = false;
+ private boolean is_ping_send_success = false;
+
+ //如果重试5次还没有连接上,则需要重新断开连接重新连接服务器。
+ private int hearBeatResendCount = 0;
+ private int MaxHeartbeatResendTime = 6;
+ //每次retry发送心跳的间隔为20秒
+ private int heartBeatRetryTimeout = 20;
+
+ private Handler mHandler;
+ //监测 心跳服务器响应的timer
+ private ScheduledThreadPoolExecutor scheduled = null;
+ private Runnable CheckSrvResponseTimerTask = new Runnable() {
+ @Override
+ public void run() {
+ checkSrvResponse();
+ }
+ };
+
+ public KeepAlive() {
+ HandlerThread handlerThread = new HandlerThread("ic:keep-alive-handler-thread");
+ handlerThread.start();
+ mHandler = new Handler(handlerThread.getLooper());
}
- }
- private Runnable msendMsgAfterHeartbeat=new Runnable() {
- @Override
- public void run() {
- connection.send(protocolAPIHelper.getBindingMSG(mRuntime));
- if (Config.protocol_no==Config.PROTOCOL_FZD){
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- connection.send(protocolAPIHelper.getSyncTimeMSG(mRuntime));
- }
- },5000);
- }
+ public void startResponseCheckTimer() {
+ //联网再重试连接服务器
+ if (SimSignalUtil.checkNet(mRuntime.getContextProxy().context)) {
+ stopResponseCheckTimer();
+ if (scheduled == null) {
+ scheduled = new ScheduledThreadPoolExecutor(10);
+ }
+ //开始检测重新计数
+ hearBeatResendCount = 0;
+ //如果开始进行连接重
+ // {
+ // 试,证明网络断开的,那么KeepAlive也需要重连(心跳包)
+ if (scheduled != null) {
+ scheduled.scheduleAtFixedRate(CheckSrvResponseTimerTask, heartBeatRetryTimeout * 1000, heartBeatRetryTimeout * 1000, TimeUnit.MILLISECONDS); //delay 3秒先检查一次,然后每5秒重试一次
+ }
+ }
}
- };
- public void checkSrvResponse(){
+ private final Runnable mSendMsgAfterHeartbeat = new Runnable() {
+ @Override
+ public void run() {
+ connection.send(protocolAPIHelper.getBindingMSG(mRuntime));
+ if (Config.protocol_no == Config.PROTOCOL_FZD) {
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ Log.d(TAG, "keep alive .... " + Thread.currentThread().getName());
+ connection.send(protocolAPIHelper.getSyncTimeMSG(mRuntime));
+ }
+ }, 5000);
+ }
+ }
+ };
- if (SimSignalUtil.checkNet(mRuntime.getContextProxy().context) ) {
+ public void checkSrvResponse() {
- //如果收到服务器响应BP03,则停止重试,否则 继续发送AP03 心跳包,且继续检查响应
- if (this.is_heartBeat_send_success ) {
- ICLogger.i("checkSrvResponse 成功,停止检测!");
- stopResponseCheckTimer();
- }else{
- //心跳发送失败,则认为已经和服务器断开
- mRuntime.setServerProtocolConnected(false);
- //如果重试次数大于等于 最大重试次数,则停止重试,等下次心跳时间再行尝试。
- if (hearBeatResendCount >= MaxHeartbeatResendTime){
- ICLogger.i("checkSrvResponse "+hearBeatResendCount+"次 >= "+MaxHeartbeatResendTime+" , 则停止重试,等下次心跳时间再行尝试!");
- stopResponseCheckTimer();
- }else {
- //重新发送AP03心跳包
- ICLogger.i("checkSrvResponse 失败,第" + hearBeatResendCount + "次,重新发送AP03心跳包!");
- //心跳开始发送的时候,先重置response检测标志
- is_heartBeat_send_success = false;
- hearBeatResendCount++;
- //更新系统的IMEI
- boolean ret=DeviceInfoUtil.updateImei(mRuntime);
- ICLogger.i("Update IMEI "+ret);
-
- //只有曾经login成功过,且上一次成功时间超过15分钟,才会自主断开网络。
- long currenttime=System.currentTimeMillis();
- ICLogger.i("只有曾经login或者心跳发送成功过,且上一次成功时间超过15分钟,才会自主断开网络! last longin time "+
- mRuntime.lastLoginSuccessTime+" ms from last login time "+(currenttime-mRuntime.lastLoginSuccessTime));
- if ((mRuntime.lastLoginSuccessTime>0) && ((currenttime- mRuntime.lastLoginSuccessTime) > 15 * 60 * 1000)) {
- ICLogger.i("超时自主断开网络!");
- CoreService.getInstance().disconnect_server();
- }else {
- if (is_login_send_success) {
- connection.send(protocolAPIHelper.getHeartbeatMSG(mRuntime));
+ if (SimSignalUtil.checkNet(mRuntime.getContextProxy().context)) {
+
+ //如果收到服务器响应BP03,则停止重试,否则 继续发送AP03 心跳包,且继续检查响应
+ if (this.is_heartBeat_send_success) {
+ ICLogger.i("checkSrvResponse 成功,停止检测!");
+ stopResponseCheckTimer();
} else {
- connection.send(protocolAPIHelper.getLoginMSG(mRuntime));
+ //心跳发送失败,则认为已经和服务器断开
+ mRuntime.setServerProtocolConnected(false);
+ //如果重试次数大于等于 最大重试次数,则停止重试,等下次心跳时间再行尝试。
+ if (hearBeatResendCount >= MaxHeartbeatResendTime) {
+ ICLogger.i("checkSrvResponse " + hearBeatResendCount + "次 >= " + MaxHeartbeatResendTime + " , 则停止重试,等下次心跳时间再行尝试!");
+ stopResponseCheckTimer();
+ } else {
+ //重新发送AP03心跳包
+ ICLogger.i("checkSrvResponse 失败,第" + hearBeatResendCount + "次,重新发送AP03心跳包!");
+ //心跳开始发送的时候,先重置response检测标志
+ is_heartBeat_send_success = false;
+ hearBeatResendCount++;
+ //更新系统的IMEI
+ boolean ret = DeviceInfoUtil.updateImei(mRuntime);
+ ICLogger.i("Update IMEI " + ret);
+
+ //只有曾经login成功过,且上一次成功时间超过15分钟,才会自主断开网络。
+ long currenttime = System.currentTimeMillis();
+ ICLogger.i("只有曾经login或者心跳发送成功过,且上一次成功时间超过15分钟,才会自主断开网络! last longin time " +
+ mRuntime.lastLoginSuccessTime + " ms from last login time " + (currenttime - mRuntime.lastLoginSuccessTime));
+ if ((mRuntime.lastLoginSuccessTime > 0) && ((currenttime - mRuntime.lastLoginSuccessTime) > 15 * 60 * 1000)) {
+ ICLogger.i("超时自主断开网络!");
+ CoreService.getInstance().disconnect_server();
+ } else {
+ if (is_login_send_success) {
+ connection.send(protocolAPIHelper.getHeartbeatMSG(mRuntime));
+ } else {
+ connection.send(protocolAPIHelper.getLoginMSG(mRuntime));
+ }
+ }
+ }
}
- }
- }
- }
- }else{
- //没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网
- ICLogger.i("checkSrvResponse stop , 没有网络就不用重新尝试检测服务器响应和重新发送心跳包了!");
+ } else {
+ //没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网
+ ICLogger.i("checkSrvResponse stop , 没有网络就不用重新尝试检测服务器响应和重新发送心跳包了!");
- stopResponseCheckTimer();
+ stopResponseCheckTimer();
+ }
}
- }
-
- public void stopResponseCheckTimer(){
- if (scheduled !=null){
- scheduled.shutdownNow();
+ public void stopResponseCheckTimer() {
+ if (scheduled != null) {
+ scheduled.shutdownNow();
// Runnable tmp= scheduled.getQueue().poll();
// while (tmp!=null){
// scheduled.remove(tmp);
// }
- scheduled.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
- scheduled.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
+ scheduled.setContinueExistingPeriodicTasksAfterShutdownPolicy(true);
+ scheduled.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
// scheduled.setRemoveOnCancelPolicy(true);
- ICLogger.i("Wait for thread pool getContinueExistingPeriodicTasksAfterShutdownPolicy " +scheduled.getContinueExistingPeriodicTasksAfterShutdownPolicy()+
- "\ngetExecuteExistingDelayedTasksAfterShutdownPolicy "+scheduled.getExecuteExistingDelayedTasksAfterShutdownPolicy());//+
+ ICLogger.i("Wait for thread pool getContinueExistingPeriodicTasksAfterShutdownPolicy " + scheduled.getContinueExistingPeriodicTasksAfterShutdownPolicy() +
+ "\ngetExecuteExistingDelayedTasksAfterShutdownPolicy " + scheduled.getExecuteExistingDelayedTasksAfterShutdownPolicy());//+
// "\ngetRemoveOnCancelPolicy "+scheduled.getRemoveOnCancelPolicy());
// while(!scheduled.isTerminated())
// {
// e.printStackTrace();
// }
// }
- scheduled.purge();
- scheduled = null;
+ scheduled.purge();
+ scheduled = null;
+ }
+
+ ICLogger.i(" stopResponseCheckTimer Done ");
}
- ICLogger.i(" stopResponseCheckTimer Done ");
- }
-
-
-
- public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {
-
- ICLogger.i("onAlarmClock");
-
- }
-
- public void onAttach(final Connection connection, final Runtime runtime) {
- this.mRuntime = runtime;
- this.mContext = (runtime.getContextProxy()).context;
- this.mNetworkObservable.register(this.mContext);
- this.connection = connection;
- this.mSubscription = this.mNetworkObservable.onChange().subscribe(new Action1<Integer>() {
- private boolean first;
-
- public void call(Integer param1Integer) {
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append("yls aBoolean=");
- stringBuilder.append(param1Integer);
- stringBuilder.append(",,first=");
- stringBuilder.append(this.first);
- ICLogger.i(stringBuilder.toString());
- if (param1Integer.intValue() > 1) {
- //返回值大于0 证明是网络连接成功,开始重连服务器
- if (this.first) {
- this.first = false;
- return;
- }
- ICLogger.i("数据网络连接成功,重新连接服务器。");
- CoreService.getInstance().ReConnectToServer();
- }
- }
+
+ public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {
+
+ ICLogger.i("onAlarmClock");
+
+ }
+
+ public void onAttach(final Connection connection, final Runtime runtime) {
+ this.mRuntime = runtime;
+ this.mContext = (runtime.getContextProxy()).context;
+ this.mNetworkObservable.register(this.mContext);
+ this.connection = connection;
+ this.mSubscription = this.mNetworkObservable.onChange().subscribe(new Action1<Integer>() {
+ private boolean first;
+
+ public void call(Integer param1Integer) {
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append("yls aBoolean=");
+ stringBuilder.append(param1Integer);
+ stringBuilder.append(",,first=");
+ stringBuilder.append(this.first);
+ ICLogger.i(stringBuilder.toString());
+ if (param1Integer.intValue() > 1) {
+ //返回值大于0 证明是网络连接成功,开始重连服务器
+ if (this.first) {
+ this.first = false;
+ return;
+ }
+ ICLogger.i("数据网络连接成功,重新连接服务器。");
+ CoreService.getInstance().ReConnectToServer();
+ }
+ }
});
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction("android.intent.action.ACTION_SHUTDOWN");
- this.mShutDownReceiver = new ShutDownReceiver();
- this.mContext.registerReceiver(this.mShutDownReceiver, intentFilter);
- }
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction("android.intent.action.ACTION_SHUTDOWN");
+ this.mShutDownReceiver = new ShutDownReceiver();
+ this.mContext.registerReceiver(this.mShutDownReceiver, intentFilter);
+ }
@Override
public boolean onConnectionClose(Connection paramConnection, Runtime paramRuntime, String ErrorMsg) {
// if (isConnected)
- //如果KeepAlive被关闭说明网络有问题,因此开启重试联网机制
- stopResponseCheckTimer();
+ //如果KeepAlive被关闭说明网络有问题,因此开启重试联网机制
+ stopResponseCheckTimer();
- if (false) {
- if (ErrorMsg.equals("DIS_CONNECT_BY_SERVERSIDE")) {
- if (mDisconnectByServerCount < 3) {//被服务器拒绝连续拒绝3次后才停止重试
- CoreService.getInstance().startConnectionRetryTimer();
+ if (false) {
+ if (ErrorMsg.equals("DIS_CONNECT_BY_SERVERSIDE")) {
+ if (mDisconnectByServerCount < 3) {//被服务器拒绝连续拒绝3次后才停止重试
+ CoreService.getInstance().startConnectionRetryTimer();
+ } else {
+ ICLogger.i("服务器主动断开超过连续3次,IMEI不对或者命令格式错误!停止重试连接服务器,等待重启或者下一次网络重连。");
+ }
+ mDisconnectByServerCount++;
+ } else {
+ mDisconnectByServerCount = 0; //如果不是被服务器拒绝,则重置 计数。
+ CoreService.getInstance().startConnectionRetryTimer();
+ }
} else {
- ICLogger.i("服务器主动断开超过连续3次,IMEI不对或者命令格式错误!停止重试连接服务器,等待重启或者下一次网络重连。");
+ CoreService.getInstance().startConnectionRetryTimer();
}
- mDisconnectByServerCount++;
- } else {
- mDisconnectByServerCount = 0; //如果不是被服务器拒绝,则重置 计数。
- CoreService.getInstance().startConnectionRetryTimer();
- }
- }else{
- CoreService.getInstance().startConnectionRetryTimer();
- }
- connectionError = true;
- isConnected = false;
- paramRuntime.setServerProtocolConnected(false);
-
- is_ping_send_success=false;
- is_login_send_success=false;
- is_heartBeat_send_success=false;
-
- //发送广播 服务器断开链接
- paramRuntime.getContextProxy().sendBroadcastServerConnectionChanged(false);
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append("onConnectionClose=");
- stringBuilder.append(",set KeepAlive isConnected = false");
- ICLogger.i(stringBuilder.toString());
+ connectionError = true;
+ isConnected = false;
+ paramRuntime.setServerProtocolConnected(false);
+
+ is_ping_send_success = false;
+ is_login_send_success = false;
+ is_heartBeat_send_success = false;
+
+ //发送广播 服务器断开链接
+ paramRuntime.getContextProxy().sendBroadcastServerConnectionChanged(false);
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append("onConnectionClose=");
+ stringBuilder.append(",set KeepAlive isConnected = false");
+ ICLogger.i(stringBuilder.toString());
// LauncherCtrl.getInstance(this.mContext).setStatusBarIcon("server_connected", STATUS_BAR_STATE_SERVER_CONNECTED_OFF);
//网络断开后,重连成功后发送一个定位
// CoreService.needLocateInAfterHeartBeat=true;
- return false;
- }
+ return false;
+ }
+
public boolean onConnectionOpen(Connection paramConnection, Runtime paramRuntime) {
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append("onConnectionOpen connectionError=");
- stringBuilder.append(connectionError);
- stringBuilder.append(",sInSleepMode =");
- stringBuilder.append(isInSleepMode);
- stringBuilder.append(",set KeepAlive isConnected = true");
- ICLogger.i(stringBuilder.toString());
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append("onConnectionOpen connectionError=");
+ stringBuilder.append(connectionError);
+ stringBuilder.append(",sInSleepMode =");
+ stringBuilder.append(isInSleepMode);
+ stringBuilder.append(",set KeepAlive isConnected = true");
+ ICLogger.i(stringBuilder.toString());
// if (!connectionError) {
- connectionError = false;
+ connectionError = false;
- //更新系统的IMEI
- boolean ret=DeviceInfoUtil.updateImei(paramRuntime);
- ICLogger.i("Update IMEI "+ret);
- //发送登录包
- is_login_send_success=false;
+ //更新系统的IMEI
+ boolean ret = DeviceInfoUtil.updateImei(paramRuntime);
+ ICLogger.i("Update IMEI " + ret);
+ //发送登录包
+ is_login_send_success = false;
- isConnected = true;
+ isConnected = true;
- Util.mSleep(1000);
+ Util.mSleep(1000);
- connection.send(protocolAPIHelper.getLoginMSG(paramRuntime));
+ connection.send(protocolAPIHelper.getLoginMSG(paramRuntime));
// this.firstReConnected = true;
// this.idleTimeMillis = SystemClock.elapsedRealtime();
- return false;
- }
-
- public void onDetach(Connection paramConnection, Runtime paramRuntime) {
- if (this.mSubscription != null && !this.mSubscription.isUnsubscribed())
- this.mSubscription.unsubscribe();
- this.mNetworkObservable.unregister(this.mContext);
- this.mContext.unregisterReceiver(this.mShutDownReceiver);
- }
-
- public void onHeartAlarm(Connection paramNettyConnection, Runtime paramRuntime) {
- ICLogger.i("onHeartAlarm");
-
- stopResponseCheckTimer();
- //心跳开始发送的时候,先重置response检测标志
- is_heartBeat_send_success=false;
-
- //这个是正常心跳包,暂时不能认为服务器连接时失败的,所以正常发送检测。
- //发送心跳包
- connection.send(protocolAPIHelper.getHeartbeatMSG(paramRuntime));
+ return false;
+ }
+
+ public void onDetach(Connection paramConnection, Runtime paramRuntime) {
+ if (this.mSubscription != null && !this.mSubscription.isUnsubscribed())
+ this.mSubscription.unsubscribe();
+ this.mNetworkObservable.unregister(this.mContext);
+ this.mContext.unregisterReceiver(this.mShutDownReceiver);
+ }
+
+ public void onHeartAlarm(Connection paramNettyConnection, Runtime paramRuntime) {
+ ICLogger.i("onHeartAlarm");
+
+ stopResponseCheckTimer();
+ //心跳开始发送的时候,先重置response检测标志
+ is_heartBeat_send_success = false;
+
+ //这个是正常心跳包,暂时不能认为服务器连接时失败的,所以正常发送检测。
+ //发送心跳包
+ connection.send(protocolAPIHelper.getHeartbeatMSG(paramRuntime));
//发送完心跳后,开始检查服务器响应
- startResponseCheckTimer();
+ startResponseCheckTimer();
- }
+ }
- public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, Runtime paramRuntime) {
+ public boolean onReceive(StringMessage paramStringMessage, Connection paramConnection, Runtime paramRuntime) {
// this.idleTimeMillis = SystemClock.elapsedRealtime();
- if ("heartbeat".equals(paramStringMessage.cmd())) {
- AlarmWakeUp.isNeedWakeUpAlarm(paramRuntime);
+ if ("heartbeat".equals(paramStringMessage.cmd())) {
+ AlarmWakeUp.isNeedWakeUpAlarm(paramRuntime);
// 收到心跳才认为是已经连接了服务器
- paramRuntime.setServerProtocolConnected(true);
+ paramRuntime.setServerProtocolConnected(true);
// isConnected = true;
- is_heartBeat_send_success=true;
- paramRuntime.lastLoginSuccessTime=System.currentTimeMillis();
+ is_heartBeat_send_success = true;
+ paramRuntime.lastLoginSuccessTime = System.currentTimeMillis();
// LauncherCtrl.getInstance(this.mContext).setStatusBarIcon("server_connected", STATUS_BAR_STATE_SERVER_CONNECTED_ON);
// Deliver.triggerSendThread(); //链接上就尝试清除 buffer中的数据
- if(!is_ping_send_success) {
- //心跳结束后执行,且只在重新登陆后执行一次
- mHandler.post(msendMsgAfterHeartbeat);
- is_ping_send_success=true;
- }
- if (CoreService.needLocateInAfterHeartBeat==true){
- //第一次启动或者系统Close后重连的时候,重置LocationCycle
- CoreService.needLocateInAfterHeartBeat=false;
- LocationClient.setForceLocation(1);
- CoreService.getInstance().setLocationAlarm(paramRuntime.getLocationInstance().getWorkingMod());
- }
- }else if (paramStringMessage.cmd().equals("login")) {
- //广播服务器连接成功的消息
- paramRuntime.getContextProxy().sendBroadcastServerConnectionChanged(true);
- //登录包收到就停止重链接服务器
- CoreService.getInstance().stopConnectionRetryTimer();
- is_login_send_success=true;
- //收到登录包反馈后再发送心跳
-
- //心跳开始发送的时候,先重置response检测标志
- is_heartBeat_send_success=false;
- is_ping_send_success=false;
- paramRuntime.lastLoginSuccessTime=System.currentTimeMillis();
- //发送心跳包
-
- //这时重新连接服务器才进行的连接,理论上close已经设置false,此次可以认为协议定然断开,所以设置为false作为双重保险。
- mRuntime.setServerProtocolConnected(false);
- connection.send(protocolAPIHelper.getHeartbeatMSG(paramRuntime));
- //发送完心跳后,开始检查服务器响应
-
- startResponseCheckTimer();
+ if (!is_ping_send_success) {
+ //心跳结束后执行,且只在重新登陆后执行一次
+ mHandler.post(mSendMsgAfterHeartbeat);
+ is_ping_send_success = true;
+ }
+ if (CoreService.needLocateInAfterHeartBeat == true) {
+ //第一次启动或者系统Close后重连的时候,重置LocationCycle
+ CoreService.needLocateInAfterHeartBeat = false;
+ LocationClient.setForceLocation(1);
+ CoreService.getInstance().setLocationAlarm(paramRuntime.getLocationInstance().getWorkingMod());
+ }
+ } else if (paramStringMessage.cmd().equals("login")) {
+ //广播服务器连接成功的消息
+ paramRuntime.getContextProxy().sendBroadcastServerConnectionChanged(true);
+ //登录包收到就停止重链接服务器
+ CoreService.getInstance().stopConnectionRetryTimer();
+ is_login_send_success = true;
+ //收到登录包反馈后再发送心跳
+
+ //心跳开始发送的时候,先重置response检测标志
+ is_heartBeat_send_success = false;
+ is_ping_send_success = false;
+ paramRuntime.lastLoginSuccessTime = System.currentTimeMillis();
+ //发送心跳包
+ //这时重新连接服务器才进行的连接,理论上close已经设置false,此次可以认为协议定然断开,所以设置为false作为双重保险。
+ mRuntime.setServerProtocolConnected(false);
+ connection.send(protocolAPIHelper.getHeartbeatMSG(paramRuntime));
+ //发送完心跳后,开始检查服务器响应
+ startResponseCheckTimer();
+
+
+ }
+ return false;
}
- return false;
- }
-
-
- public void setSleepMode(boolean paramBoolean) {
- isInSleepMode = paramBoolean;
- }
-
- class ShutDownReceiver extends BroadcastReceiver {
- public void onReceive(Context param1Context, Intent param1Intent) {
- boolean bool = param1Intent.getBooleanExtra("reboot", false);
- ICLogger.i("Shutdown Received! reboot="+bool);
- if (!bool && !KeepAlive.this.mRuntime.isShutdown()){
- /*电量低,不是重启,且不是服务器让关闭的*/
- KeepAlive.this.mRuntime.setAlarmType(Runtime.AlarmType.ALARM_POWER_OFF);
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
+
+
+ public void setSleepMode(boolean paramBoolean) {
+ isInSleepMode = paramBoolean;
+ }
+
+ class ShutDownReceiver extends BroadcastReceiver {
+ public void onReceive(Context param1Context, Intent param1Intent) {
+ boolean bool = param1Intent.getBooleanExtra("reboot", false);
+ ICLogger.i("Shutdown Received! reboot=" + bool);
+ if (!bool && !KeepAlive.this.mRuntime.isShutdown()) {
+ /*电量低,不是重启,且不是服务器让关闭的*/
+ KeepAlive.this.mRuntime.setAlarmType(Runtime.AlarmType.ALARM_POWER_OFF);
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(KeepAlive.this.mRuntime));
- ICLogger.i("Shutdown Received! send AP10 !");
- }
+ ICLogger.i("Shutdown Received! send AP10 !");
+ }
+ }
}
- }
}
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Message;
import android.os.Messenger;
import android.telephony.PhoneStateListener;
-import android.telephony.PreciseCallState;
import android.telephony.TelephonyManager;
import com.enqualcomm.support.Config;
import com.enqualcomm.support.CoreService;
import com.enqualcomm.support.ICContentProvider;
-import com.enqualcomm.support.MainActivity;
import com.enqualcomm.support.bean.Alarm;
import com.enqualcomm.support.bean.Antioff;
import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.Silent;
import com.enqualcomm.support.bean.StheartRate;
-
import com.enqualcomm.support.service.base.AbstractInvokeHandlerService;
import com.enqualcomm.support.utils.AlarmHelper;
import com.enqualcomm.support.utils.Connection;
import java.util.Calendar;
import java.util.Date;
import java.util.Iterator;
-import java.util.concurrent.TimeUnit;
-import static android.telephony.TelephonyManager.ACTION_PHONE_STATE_CHANGED;
import static android.telephony.TelephonyManager.CALL_STATE_OFFHOOK;
import static android.telephony.TelephonyManager.CALL_STATE_RINGING;
import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.ACTION_ANTIOFF_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.ACTION_CARE_ALARM;
import static com.enqualcomm.support.Constants.ACTION_CLOSE_UNREAD_MSG;
-import static com.enqualcomm.support.Constants.ACTION_HEATR_RATE_START;
import static com.enqualcomm.support.Constants.ACTION_NOTICE_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.OTHER_ALARM_END;
import static com.enqualcomm.support.Constants.OTHER_ALARM_START;
-import static com.enqualcomm.support.Constants.SERVICE_CLS_NAME;
-import static com.enqualcomm.support.Constants.SERVICE_PKG_NAME;
public class SilentManager extends AbstractInvokeHandlerService {
- private static final long ONE_WEEK = 604800000L;
- private static final long ONE_DAY = 86400000L;
-
- private ArrayList<Alarm> alarms;
- private boolean haveHandSilence;
- private boolean isCalling;
- AlarmManager mAlarmManager;
- private SilentManager.AlramReceiver mAlramReceiver;
- Connection mConnection;
-
- private static Handler mHandler;
- static{
- mHandler = new Handler(EventLooperHandlerThread.makeLooper(SilentManager.class.getSimpleName()));
- }
- ContentObserver mContentObserver = new ContentObserver(mHandler) {
- public void onChange(boolean var1) {
- ICLogger.i("静默有变化");
- SilentManager.this.silentList = SilentManager.this.querySilent();
- SilentManager.this.getSilentListStartAndEndTime();
- SilentManager.this.handleSilent(mRuntime, true);
- }
- };
- private Context mContext;
- private DBHelper mDbHelper;
- private boolean mInSilent;
- private String mInterval;
- private boolean mIsNeedAntioff;
- private boolean mIsStheartRate;
- private MissedCallContentObserver mMissedCallContentObserver;
- Runtime mRuntime;
- private int mStheartRateInterval;
- private int mTodayWeek;
- private boolean mValue_isSilence;
-
- public static final int PRECISE_CALL_STATE_NOT_VALID = -1;
- public static final int PRECISE_CALL_STATE_IDLE = 0; //空闲
- public static final int PRECISE_CALL_STATE_ACTIVE = 1; //正在通话
- public static final int PRECISE_CALL_STATE_HOLDING = 2; //通话挂起
- public static final int PRECISE_CALL_STATE_DIALING = 3; //拨号开始
- public static final int PRECISE_CALL_STATE_ALERTING = 4; //正在呼出
- public static final int PRECISE_CALL_STATE_INCOMING = 5; //对方来电
- public static final int PRECISE_CALL_STATE_WAITING = 6; //第三方来电等待
- public static final int PRECISE_CALL_STATE_DISCONNECTED = 7; //挂断完成
- public static final int PRECISE_CALL_STATE_DISCONNECTING = 8; //正在挂断
-
- private static SilentManager mSilentManger=null;
-
- public static SilentManager getInstance(){
- if (mSilentManger==null)
- mSilentManger=new SilentManager();
- return mSilentManger;
- }
- private PhoneStateListener phoneStateListener = new PhoneStateListener() {
- public void onCallStateChanged(int state, String incomingNumber) {
- super.onCallStateChanged(state, incomingNumber);
-
- ICLogger.i("========onCallStateChanged state "+state+", incomingNumber "+incomingNumber);
- switch(state) {
- case PRECISE_CALL_STATE_DISCONNECTING: //挂电话
- case PRECISE_CALL_STATE_DISCONNECTED: //挂电话
- isCalling = false;
+ private static final long ONE_WEEK = 604800000L;
+ private static final long ONE_DAY = 86400000L;
+
+ private ArrayList<Alarm> alarms;
+ private boolean haveHandSilence;
+ private boolean isCalling;
+ AlarmManager mAlarmManager;
+ private SilentManager.AlramReceiver mAlramReceiver;
+ Connection mConnection;
+
+ private static Handler mHandler;
+
+ static {
+ mHandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper());
+ }
+
+ ContentObserver mContentObserver = new ContentObserver(mHandler) {
+ public void onChange(boolean var1) {
+ ICLogger.i("静默有变化");
+ SilentManager.this.silentList = SilentManager.this.querySilent();
+ SilentManager.this.getSilentListStartAndEndTime();
+ SilentManager.this.handleSilent(mRuntime, true);
+ }
+ };
+ private Context mContext;
+ private DBHelper mDbHelper;
+ private boolean mInSilent;
+ private String mInterval;
+ private boolean mIsNeedAntioff;
+ private boolean mIsStheartRate;
+ private MissedCallContentObserver mMissedCallContentObserver;
+ Runtime mRuntime;
+ private int mStheartRateInterval;
+ private int mTodayWeek;
+ private boolean mValue_isSilence;
+
+ public static final int PRECISE_CALL_STATE_NOT_VALID = -1;
+ public static final int PRECISE_CALL_STATE_IDLE = 0; //空闲
+ public static final int PRECISE_CALL_STATE_ACTIVE = 1; //正在通话
+ public static final int PRECISE_CALL_STATE_HOLDING = 2; //通话挂起
+ public static final int PRECISE_CALL_STATE_DIALING = 3; //拨号开始
+ public static final int PRECISE_CALL_STATE_ALERTING = 4; //正在呼出
+ public static final int PRECISE_CALL_STATE_INCOMING = 5; //对方来电
+ public static final int PRECISE_CALL_STATE_WAITING = 6; //第三方来电等待
+ public static final int PRECISE_CALL_STATE_DISCONNECTED = 7; //挂断完成
+ public static final int PRECISE_CALL_STATE_DISCONNECTING = 8; //正在挂断
+
+ private static SilentManager mSilentManger = null;
+
+ public static SilentManager getInstance() {
+ if (mSilentManger == null)
+ mSilentManger = new SilentManager();
+ return mSilentManger;
+ }
+
+ private PhoneStateListener phoneStateListener = new PhoneStateListener() {
+ public void onCallStateChanged(int state, String incomingNumber) {
+ super.onCallStateChanged(state, incomingNumber);
+
+ ICLogger.i("========onCallStateChanged state " + state + ", incomingNumber " + incomingNumber);
+ switch (state) {
+ case PRECISE_CALL_STATE_DISCONNECTING: //挂电话
+ case PRECISE_CALL_STATE_DISCONNECTED: //挂电话
+ isCalling = false;
// if (SilentManager.this.haveHandSilence) {
// SilentManager.this.handSilence(SilentManager.this.mContext, SilentManager.this.mValue_isSilence);
// }
- if(ICAudioManager.needMute==true)
- {
+ if (ICAudioManager.needMute == true) {
// ICAudioManager.restoreVolumn(mContext); //2秒后恢复音量
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- ICAudioManager.restoreVolumn(mContext); //2秒后恢复音量
- ICAudioManager.needMute=false;
- }
- },2000);
- }
- ICLogger.i("========Hung up!");
- break;
- case PRECISE_CALL_STATE_INCOMING: //来电
- case PRECISE_CALL_STATE_ALERTING:
- case PRECISE_CALL_STATE_DIALING:
- isCalling = true;
- Intent var3 = new Intent();
- var3.setAction(ACTION_CLOSE_UNREAD_MSG);
- mContext.sendBroadcast(var3);
-
- ICLogger.i("========Ring!");
- if(ICAudioManager.needMute==true)
- {
- ICAudioManager.setVolumnMute(mContext);
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- ICAudioManager.setVolumnMute(mContext); //2秒后恢复音量
- }
- },2000);
-
- }
- break;
- case PRECISE_CALL_STATE_ACTIVE://接电话
- {
- if (ICAudioManager.needMute == false){
- if (Config.custom_name.equals("AK"))
- ICAudioManager.setVoiceCallMaxVolumn(mContext); //设置最大音量
- }
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ ICAudioManager.restoreVolumn(mContext); //2秒后恢复音量
+ ICAudioManager.needMute = false;
+ }
+ }, 2000);
+ }
+ ICLogger.i("========Hung up!");
+ break;
+ case PRECISE_CALL_STATE_INCOMING: //来电
+ case PRECISE_CALL_STATE_ALERTING:
+ case PRECISE_CALL_STATE_DIALING:
+ isCalling = true;
+ Intent var3 = new Intent();
+ var3.setAction(ACTION_CLOSE_UNREAD_MSG);
+ mContext.sendBroadcast(var3);
+
+ ICLogger.i("========Ring!");
+ if (ICAudioManager.needMute == true) {
+ ICAudioManager.setVolumnMute(mContext);
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ ICAudioManager.setVolumnMute(mContext); //2秒后恢复音量
+ }
+ }, 2000);
+
+ }
+ break;
+ case PRECISE_CALL_STATE_ACTIVE://接电话
+ {
+ if (ICAudioManager.needMute == false) {
+ if (Config.custom_name.equals("AK"))
+ ICAudioManager.setVoiceCallMaxVolumn(mContext); //设置最大音量
+ }
+ }
+ case PRECISE_CALL_STATE_HOLDING://接电话
+ case PRECISE_CALL_STATE_WAITING:
+ isCalling = true;
+ ICLogger.i("========Answer Call !");
+ if (ICAudioManager.needMute == true) {
+ ICAudioManager.setVolumnMute(mContext);
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ ICAudioManager.setVolumnMute(mContext); //2秒后恢复音量
+ }
+ }, 2000);
+ }
+
+ }
+
+ }
+ };
+ private ArrayList<Antioff> sAntioffList;
+ private ArrayList<Silent> silentList;
+ private ArrayList<StheartRate> stheartRateList;
+ private ArrayList<NoticeContent> voiceNotice;
+
+ public SilentManager() {
+ }
+
+ private void callback(Messenger var1, boolean var2) {
+ short var3;
+ if (var2) {
+ var3 = 600;
+ } else {
+ var3 = 700;
}
- case PRECISE_CALL_STATE_HOLDING://接电话
- case PRECISE_CALL_STATE_WAITING:
- isCalling = true;
- ICLogger.i("========Answer Call !");
- if(ICAudioManager.needMute==true)
- {
- ICAudioManager.setVolumnMute(mContext);
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- ICAudioManager.setVolumnMute(mContext); //2秒后恢复音量
- }
- },2000);
- }
-
- }
-
- }
- };
- private ArrayList<Antioff> sAntioffList;
- private ArrayList<Silent> silentList;
- private ArrayList<StheartRate> stheartRateList;
- private ArrayList<NoticeContent> voiceNotice;
-
- public SilentManager() {
- }
-
- private void callback(Messenger var1, boolean var2) {
- short var3;
- if (var2) {
- var3 = 600;
- } else {
- var3 = 700;
- }
-
- if (var1 != null) {
- try {
- var1.send(Message.obtain((Handler)null, var3));
- } catch (Exception e) {
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
- }
- }
-
- }
-
- private void cancelAlarm(ArrayList<Alarm> var1) {
- Iterator var2 = var1.iterator();
-
- while(var2.hasNext()) {
- Alarm var3 = (Alarm)var2.next();
- String var10 = var3.time;
- String var4 = var3.week;
- String var5 = var3.ring;
- String var11 = var3.name;
- char[] var6 = var4.toCharArray();
- int var7 = var6.length;
-
- for(int var8 = 1; var8 < var7; ++var8) {
- char var9 = var6[var8];
- this.mAlarmManager.cancel(this.getPendingIntent(var10, var4, var5, var11, var9 - 47));
- }
- }
-
- }
-
- private void cancelNoticeAlarm(ArrayList<NoticeContent> var1) {
- Iterator var2 = var1.iterator();
-
- while(var2.hasNext()) {
- NoticeContent var3 = (NoticeContent)var2.next();
- String var4 = var3.noticeTime;
- String var9 = var3.noticeName;
- String var5 = var3.noticeNumber;
- String var6 = var3.noticeID;
- String var7 = var3.noticeCategory;
- String var8 = var3.noticeFrequency;
- String var10 = var3.noticeContent;
- this.mAlarmManager.cancel(this.getPendingIntent(var4, var9, var5, var6, var7, var8, var10));
- }
-
- }
-
- private PendingIntent getPendingIntent(String var1, String var2, String var3, String var4, int var5) {
- StringBuilder var6 = new StringBuilder("alarm:");
- var6.append(var1);
- var6.append(",");
- var6.append(var2);
- var6.append(",");
- var6.append(var3);
- var6.append(",");
- var6.append(var4);
- var6.append(",");
- var6.append(var5);
- var2 = var6.toString();
- Intent intent = new Intent(this.mContext, CoreService.class);
- intent.setAction(ACTION_CARE_ALARM);
- intent.setData(Uri.parse(var2));
- return PendingIntent.getService(this.mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- }
-
- private PendingIntent getPendingIntent(String var1, String var2, String var3, String var4, String var5, String var6, String var7) {
- StringBuilder var8 = new StringBuilder("notice:");
- var8.append(var1);
- var8.append(",");
- var8.append(var2);
- var8.append(",");
- var8.append(var3);
- var8.append(",");
- var8.append(var4);
- var8.append(",");
- var8.append(var5);
- var8.append(",");
- var8.append(var6);
- var8.append(",");
- var8.append(var7);
- var1 = var8.toString();
- Intent var9 = new Intent(this.mContext, CoreService.class);
- var9.setAction("com.enqualcomm.support.ACTION_NOTICE_ALARM");
- var9.setData(Uri.parse(var1));
- return PendingIntent.getService(this.mContext, 0, var9, PendingIntent.FLAG_UPDATE_CURRENT);
- }
-
- private void getSilentListStartAndEndTime() {
- Calendar calendar = Calendar.getInstance();
- this.mTodayWeek = calendar.get(Calendar.DAY_OF_WEEK);
-
- Silent silent;
- Iterator it = this.silentList.iterator();
- while( it.hasNext()) {
- silent = (Silent)it.next();
- calendar.set(Calendar.SECOND, 0);
- int hour = Integer.parseInt(silent.start.substring(2, 4));
- int minutes = Integer.parseInt(silent.start.substring(5, 7));
- calendar.set(Calendar.HOUR_OF_DAY, hour);
- calendar.set(Calendar.MINUTE, minutes);
- silent.startTimeMillis = calendar.getTimeInMillis();
- hour = Integer.parseInt(silent.end.substring(2, 4));
- minutes = Integer.parseInt(silent.end.substring(5, 7));
- calendar.set(Calendar.HOUR_OF_DAY, hour);
- calendar.set(Calendar.MINUTE, minutes);
- silent.endTimeMillis = calendar.getTimeInMillis();
- }
-
- }
-
- private void getStartAndEndSantioffTime() {
- Calendar var1 = Calendar.getInstance();
- this.mTodayWeek = var1.get(Calendar.DAY_OF_WEEK);
-
- Antioff var3;
- for(Iterator var2 = this.sAntioffList.iterator(); var2.hasNext(); var3.endTimeMillis = var1.getTimeInMillis()) {
- var3 = (Antioff)var2.next();
- var1.set(Calendar.SECOND, 0);
- int var4 = Integer.parseInt(var3.start.substring(2, 4));
- int var5 = Integer.parseInt(var3.start.substring(5, 7));
- var1.set(Calendar.HOUR_OF_DAY, var4);
- var1.set(Calendar.MINUTE, var5);
- var3.startTimeMillis = var1.getTimeInMillis();
- var4 = Integer.parseInt(var3.end.substring(2, 4));
- var5 = Integer.parseInt(var3.end.substring(5, 7));
- var1.set(Calendar.HOUR_OF_DAY, var4);
- var1.set(Calendar.MINUTE, var5);
- }
-
- }
-
- private void getStartAndEndStheartRateTime() {
- Calendar var1 = Calendar.getInstance();
- this.mTodayWeek = var1.get(Calendar.DAY_OF_WEEK);
-
- StheartRate var3;
- for(Iterator var2 = this.stheartRateList.iterator(); var2.hasNext(); var3.endTimeMillis = var1.getTimeInMillis()) {
- var3 = (StheartRate)var2.next();
- var1.set(Calendar.SECOND, 0);
- int var4 = Integer.parseInt(var3.start.substring(2, 4));
- int var5 = Integer.parseInt(var3.start.substring(5, 7));
- var1.set(Calendar.HOUR_OF_DAY, var4);
- var1.set(Calendar.MINUTE, var5);
- var3.startTimeMillis = var1.getTimeInMillis();
- var4 = Integer.parseInt(var3.end.substring(2, 4));
- var5 = Integer.parseInt(var3.end.substring(5, 7));
- var1.set(Calendar.HOUR_OF_DAY, var4);
- var1.set(Calendar.MINUTE, var5);
- }
-
- }
-
- public static void setSilentConfig(Context context,boolean silent){
-
- if(silent){
- VibrateUtil.setVibPattern(0);
- ICAudioManager.setMasterVolumn(context,0);
- Util.SetRingMode(context,AudioManager.RINGER_MODE_SILENT,false);
- }else{
- int mastervolume = Config.getMasterVolume(context);
- ICAudioManager.setMasterVolumn(context,mastervolume);
- int duration=Config.getDurationOfVibration(context);
- VibrateUtil.setVibPattern(duration*1000);
- Util.SetRingMode(context, AudioManager.MODE_NORMAL,true);
- }
-
-
-
- }
- private void handSilence(Context var1, boolean var2) {
- this.mValue_isSilence = var2;
+
+ if (var1 != null) {
+ try {
+ var1.send(Message.obtain((Handler) null, var3));
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
+ }
+
+ }
+
+ private void cancelAlarm(ArrayList<Alarm> var1) {
+ Iterator var2 = var1.iterator();
+
+ while (var2.hasNext()) {
+ Alarm var3 = (Alarm) var2.next();
+ String var10 = var3.time;
+ String var4 = var3.week;
+ String var5 = var3.ring;
+ String var11 = var3.name;
+ char[] var6 = var4.toCharArray();
+ int var7 = var6.length;
+
+ for (int var8 = 1; var8 < var7; ++var8) {
+ char var9 = var6[var8];
+ this.mAlarmManager.cancel(this.getPendingIntent(var10, var4, var5, var11, var9 - 47));
+ }
+ }
+
+ }
+
+ private void cancelNoticeAlarm(ArrayList<NoticeContent> var1) {
+ Iterator var2 = var1.iterator();
+
+ while (var2.hasNext()) {
+ NoticeContent var3 = (NoticeContent) var2.next();
+ String var4 = var3.noticeTime;
+ String var9 = var3.noticeName;
+ String var5 = var3.noticeNumber;
+ String var6 = var3.noticeID;
+ String var7 = var3.noticeCategory;
+ String var8 = var3.noticeFrequency;
+ String var10 = var3.noticeContent;
+ this.mAlarmManager.cancel(this.getPendingIntent(var4, var9, var5, var6, var7, var8, var10));
+ }
+
+ }
+
+ private PendingIntent getPendingIntent(String var1, String var2, String var3, String var4, int var5) {
+ StringBuilder var6 = new StringBuilder("alarm:");
+ var6.append(var1);
+ var6.append(",");
+ var6.append(var2);
+ var6.append(",");
+ var6.append(var3);
+ var6.append(",");
+ var6.append(var4);
+ var6.append(",");
+ var6.append(var5);
+ var2 = var6.toString();
+ Intent intent = new Intent(this.mContext, CoreService.class);
+ intent.setAction(ACTION_CARE_ALARM);
+ intent.setData(Uri.parse(var2));
+ return PendingIntent.getService(this.mContext, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
+ }
+
+ private PendingIntent getPendingIntent(String var1, String var2, String var3, String var4, String var5, String var6, String var7) {
+ StringBuilder var8 = new StringBuilder("notice:");
+ var8.append(var1);
+ var8.append(",");
+ var8.append(var2);
+ var8.append(",");
+ var8.append(var3);
+ var8.append(",");
+ var8.append(var4);
+ var8.append(",");
+ var8.append(var5);
+ var8.append(",");
+ var8.append(var6);
+ var8.append(",");
+ var8.append(var7);
+ var1 = var8.toString();
+ Intent var9 = new Intent(this.mContext, CoreService.class);
+ var9.setAction("com.enqualcomm.support.ACTION_NOTICE_ALARM");
+ var9.setData(Uri.parse(var1));
+ return PendingIntent.getService(this.mContext, 0, var9, PendingIntent.FLAG_UPDATE_CURRENT);
+ }
+
+ private void getSilentListStartAndEndTime() {
+ Calendar calendar = Calendar.getInstance();
+ this.mTodayWeek = calendar.get(Calendar.DAY_OF_WEEK);
+
+ Silent silent;
+ Iterator it = this.silentList.iterator();
+ while (it.hasNext()) {
+ silent = (Silent) it.next();
+ calendar.set(Calendar.SECOND, 0);
+ int hour = Integer.parseInt(silent.start.substring(2, 4));
+ int minutes = Integer.parseInt(silent.start.substring(5, 7));
+ calendar.set(Calendar.HOUR_OF_DAY, hour);
+ calendar.set(Calendar.MINUTE, minutes);
+ silent.startTimeMillis = calendar.getTimeInMillis();
+ hour = Integer.parseInt(silent.end.substring(2, 4));
+ minutes = Integer.parseInt(silent.end.substring(5, 7));
+ calendar.set(Calendar.HOUR_OF_DAY, hour);
+ calendar.set(Calendar.MINUTE, minutes);
+ silent.endTimeMillis = calendar.getTimeInMillis();
+ }
+
+ }
+
+ private void getStartAndEndSantioffTime() {
+ Calendar var1 = Calendar.getInstance();
+ this.mTodayWeek = var1.get(Calendar.DAY_OF_WEEK);
+
+ Antioff var3;
+ for (Iterator var2 = this.sAntioffList.iterator(); var2.hasNext(); var3.endTimeMillis = var1.getTimeInMillis()) {
+ var3 = (Antioff) var2.next();
+ var1.set(Calendar.SECOND, 0);
+ int var4 = Integer.parseInt(var3.start.substring(2, 4));
+ int var5 = Integer.parseInt(var3.start.substring(5, 7));
+ var1.set(Calendar.HOUR_OF_DAY, var4);
+ var1.set(Calendar.MINUTE, var5);
+ var3.startTimeMillis = var1.getTimeInMillis();
+ var4 = Integer.parseInt(var3.end.substring(2, 4));
+ var5 = Integer.parseInt(var3.end.substring(5, 7));
+ var1.set(Calendar.HOUR_OF_DAY, var4);
+ var1.set(Calendar.MINUTE, var5);
+ }
+
+ }
+
+ private void getStartAndEndStheartRateTime() {
+ Calendar var1 = Calendar.getInstance();
+ this.mTodayWeek = var1.get(Calendar.DAY_OF_WEEK);
+
+ StheartRate var3;
+ for (Iterator var2 = this.stheartRateList.iterator(); var2.hasNext(); var3.endTimeMillis = var1.getTimeInMillis()) {
+ var3 = (StheartRate) var2.next();
+ var1.set(Calendar.SECOND, 0);
+ int var4 = Integer.parseInt(var3.start.substring(2, 4));
+ int var5 = Integer.parseInt(var3.start.substring(5, 7));
+ var1.set(Calendar.HOUR_OF_DAY, var4);
+ var1.set(Calendar.MINUTE, var5);
+ var3.startTimeMillis = var1.getTimeInMillis();
+ var4 = Integer.parseInt(var3.end.substring(2, 4));
+ var5 = Integer.parseInt(var3.end.substring(5, 7));
+ var1.set(Calendar.HOUR_OF_DAY, var4);
+ var1.set(Calendar.MINUTE, var5);
+ }
+
+ }
+
+ public static void setSilentConfig(Context context, boolean silent) {
+
+ if (silent) {
+ VibrateUtil.setVibPattern(0);
+ ICAudioManager.setMasterVolumn(context, 0);
+ Util.SetRingMode(context, AudioManager.RINGER_MODE_SILENT, false);
+ } else {
+ int mastervolume = Config.getMasterVolume(context);
+ ICAudioManager.setMasterVolumn(context, mastervolume);
+ int duration = Config.getDurationOfVibration(context);
+ VibrateUtil.setVibPattern(duration * 1000);
+ Util.SetRingMode(context, AudioManager.MODE_NORMAL, true);
+ }
+
+
+ }
+
+ private void handSilence(Context var1, boolean var2) {
+ this.mValue_isSilence = var2;
/*
// Intent var5 = (new Intent("com.enqualcomm.support.ACTION_VIDEO_END_CALL")).setComponent(var4);
// this.mRuntime.getContextProxy().context.startService(var5);
}*/
- }
-
- private void handleSilent(Runtime runtime, boolean silent) {
- int dayofweek = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
- //if (dayofweek != this.mTodayWeek && (dayofweek != 1 || this.mTodayWeek != 8)) {
- if (dayofweek != this.mTodayWeek ) {
- //mToday != 当天,更新一下 设置
- this.getSilentListStartAndEndTime();
- this.queryNotice();
- }
-
- boolean isSilent = this.isSilentTime();
- StringBuilder var5 = new StringBuilder();
- var5.append("inSilent=");
- var5.append(isSilent);
- ICLogger.i(var5.toString());
- if (!this.mInSilent && isSilent) {
- this.onSilentStateChange(true);
- this.handSilence(this.mContext, true);
- this.mDbHelper.upDateStatus("ON");
- } else if (this.mInSilent && !isSilent) {
- this.onSilentStateChange(false);
- this.mDbHelper.upDateStatus("OFF");
- this.handSilence(this.mContext, false);
- }
-
- this.mInSilent = isSilent;
- // this.getStartAndEndStheartRateTime();
- // this.isStheartRateTime(var2);
- }
-
- private boolean isIdle(Context context) {
- int callstate = ((TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE)).getCallState();
- boolean isidle;
- if (CALL_STATE_RINGING != callstate && CALL_STATE_OFFHOOK != callstate) {
- isidle = true;
- } else {
- isidle = false;
- }
-
- return isidle && !this.mInSilent && !this.mRuntime.getBatteryLow();
- }
-
- private boolean isAntioffTime(boolean var1) {
- long var2 = System.currentTimeMillis();
- ArrayList var4 = this.sAntioffList;
- int var5 = this.mTodayWeek;
- var1 = true;
- if (var5 == 1) {
- this.mTodayWeek += 7;
- }
-
- Iterator var12 = var4.iterator();
-
- while(true) {
- if (!var12.hasNext()) {
- var1 = false;
- break;
- }
-
- Antioff var6 = (Antioff)var12.next();
- String var7 = var6.week;
- StringBuilder var8 = new StringBuilder();
- var8.append(this.mTodayWeek - 1);
- var8.append("");
- if (var7.contains(var8.toString())) {
- long var9 = var6.startTimeMillis - var2;
- int var11;
- if (var9 < (long)(CoreService.alarmCycle * 60 * 1000) && var9 > 0L) {
- var11 = Integer.parseInt(var6.start.substring(2, 4));
- var5 = Integer.parseInt(var6.start.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, var11, var5, OTHER_ALARM_START);
- var8 = new StringBuilder();
- var8.append("设置起始时间=hour");
- var8.append(var11);
- var8.append("minute+");
- var8.append(var5);
- ICLogger.i(var8.toString());
- }
+ }
- var9 = var6.endTimeMillis - var2;
- if (var9 < (long)(CoreService.alarmCycle * 60 * 1000) && var9 > 0L) {
- var11 = Integer.parseInt(var6.end.substring(2, 4));
- var5 = Integer.parseInt(var6.end.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, var11, var5, OTHER_ALARM_END);
- var8 = new StringBuilder();
- var8.append("设置结束时间=hour");
- var8.append(var11);
- var8.append("minute+");
- var8.append(var5);
- ICLogger.i(var8.toString());
+ private void handleSilent(Runtime runtime, boolean silent) {
+ int dayofweek = Calendar.getInstance().get(Calendar.DAY_OF_WEEK);
+ //if (dayofweek != this.mTodayWeek && (dayofweek != 1 || this.mTodayWeek != 8)) {
+ if (dayofweek != this.mTodayWeek) {
+ //mToday != 当天,更新一下 设置
+ this.getSilentListStartAndEndTime();
+ this.queryNotice();
}
- if (var6.startTimeMillis <= var2 && var6.endTimeMillis > var2) {
- break;
+ boolean isSilent = this.isSilentTime();
+ StringBuilder var5 = new StringBuilder();
+ var5.append("inSilent=");
+ var5.append(isSilent);
+ ICLogger.i(var5.toString());
+ if (!this.mInSilent && isSilent) {
+ this.onSilentStateChange(true);
+ this.handSilence(this.mContext, true);
+ this.mDbHelper.upDateStatus("ON");
+ } else if (this.mInSilent && !isSilent) {
+ this.onSilentStateChange(false);
+ this.mDbHelper.upDateStatus("OFF");
+ this.handSilence(this.mContext, false);
}
- }
+
+ this.mInSilent = isSilent;
+ // this.getStartAndEndStheartRateTime();
+ // this.isStheartRateTime(var2);
}
- this.mRuntime.setNeedAntioff(var1);
- return var1;
- }
+ private boolean isIdle(Context context) {
+ int callstate = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getCallState();
+ boolean isidle;
+ if (CALL_STATE_RINGING != callstate && CALL_STATE_OFFHOOK != callstate) {
+ isidle = true;
+ } else {
+ isidle = false;
+ }
- private boolean isSilentTime() {
- long currenttime = System.currentTimeMillis();
- ArrayList slist = this.silentList;
- int todayWeek = this.mTodayWeek;
- boolean isSilent = false; //默认不在silent时间段
-// if (todayWeek == 1) {
-// this.mTodayWeek += 7;
-// }
+ return isidle && !this.mInSilent && !this.mRuntime.getBatteryLow();
+ }
- Iterator it = slist.iterator();
+ private boolean isAntioffTime(boolean var1) {
+ long var2 = System.currentTimeMillis();
+ ArrayList var4 = this.sAntioffList;
+ int var5 = this.mTodayWeek;
+ var1 = true;
+ if (var5 == 1) {
+ this.mTodayWeek += 7;
+ }
- while(true) {
- if (!it.hasNext()) {
- isSilent = false;
- break;
- }
+ Iterator var12 = var4.iterator();
- Silent silent = (Silent)it.next();
- String week = silent.week;
- StringBuilder sb = new StringBuilder();
-// sb.append(this.mTodayWeek - 1);
- sb.append(this.mTodayWeek);
- sb.append("");
- if (week.contains(sb.toString())) {
- long var9 = silent.startTimeMillis - currenttime;
- int hour,minutes;
- StringBuilder sblog;
- ICLogger.i("startTimeMillis - currenttime "+var9);
- if (var9 < (long)(CoreService.alarmCycle * 60 * 1000) && var9 > 0L) {
- hour = Integer.parseInt(silent.start.substring(2, 4));
- minutes = Integer.parseInt(silent.start.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, hour, minutes, OTHER_ALARM_START);
- sblog = new StringBuilder();
- sblog.append("设置起始时间=hour");
- sblog.append(hour);
- sblog.append("minute+");
- sblog.append(minutes);
- ICLogger.i(sblog.toString());
- }
+ while (true) {
+ if (!var12.hasNext()) {
+ var1 = false;
+ break;
+ }
- var9 = silent.endTimeMillis - currenttime;
- ICLogger.i("endTimeMillis - currenttime "+var9);
- if (var9 < (long)(CoreService.alarmCycle * 60 * 1000) && var9 > 0L) {
- hour = Integer.parseInt(silent.end.substring(2, 4));
- minutes = Integer.parseInt(silent.end.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, hour, minutes, OTHER_ALARM_END);
- sblog = new StringBuilder();
- sblog.append("设置结束时间=hour");
- sblog.append(hour);
- sblog.append("minute+");
- sblog.append(minutes);
- ICLogger.i(sblog.toString());
+ Antioff var6 = (Antioff) var12.next();
+ String var7 = var6.week;
+ StringBuilder var8 = new StringBuilder();
+ var8.append(this.mTodayWeek - 1);
+ var8.append("");
+ if (var7.contains(var8.toString())) {
+ long var9 = var6.startTimeMillis - var2;
+ int var11;
+ if (var9 < (long) (CoreService.alarmCycle * 60 * 1000) && var9 > 0L) {
+ var11 = Integer.parseInt(var6.start.substring(2, 4));
+ var5 = Integer.parseInt(var6.start.substring(5, 7));
+ AlarmHelper.setTimeAlarm(this.mContext, var11, var5, OTHER_ALARM_START);
+ var8 = new StringBuilder();
+ var8.append("设置起始时间=hour");
+ var8.append(var11);
+ var8.append("minute+");
+ var8.append(var5);
+ ICLogger.i(var8.toString());
+ }
+
+ var9 = var6.endTimeMillis - var2;
+ if (var9 < (long) (CoreService.alarmCycle * 60 * 1000) && var9 > 0L) {
+ var11 = Integer.parseInt(var6.end.substring(2, 4));
+ var5 = Integer.parseInt(var6.end.substring(5, 7));
+ AlarmHelper.setTimeAlarm(this.mContext, var11, var5, OTHER_ALARM_END);
+ var8 = new StringBuilder();
+ var8.append("设置结束时间=hour");
+ var8.append(var11);
+ var8.append("minute+");
+ var8.append(var5);
+ ICLogger.i(var8.toString());
+ }
+
+ if (var6.startTimeMillis <= var2 && var6.endTimeMillis > var2) {
+ break;
+ }
+ }
}
- //刚好在silent时段,则直接退出
- if (silent.startTimeMillis <= currenttime && silent.endTimeMillis > currenttime) {
- isSilent=true;
- break;
- }
- }else{
- ICLogger.i(sb+" not in ["+week+"] silent is false");
- }
+ this.mRuntime.setNeedAntioff(var1);
+ return var1;
}
- return isSilent;
- }
-
- private boolean isStheartRateTime(boolean var1) {
- long var2 = System.currentTimeMillis();
- ArrayList var4 = this.stheartRateList;
- if (this.mTodayWeek == 1) {
- this.mTodayWeek += 7;
- }
+ private boolean isSilentTime() {
+ long currenttime = System.currentTimeMillis();
+ ArrayList slist = this.silentList;
+ int todayWeek = this.mTodayWeek;
+ boolean isSilent = false; //默认不在silent时间段
+// if (todayWeek == 1) {
+// this.mTodayWeek += 7;
+// }
- Iterator var12 = var4.iterator();
+ Iterator it = slist.iterator();
- while(true) {
- if (var12.hasNext()) {
- StheartRate var5 = (StheartRate)var12.next();
- String var6 = var5.week;
- StringBuilder var7 = new StringBuilder();
- var7.append(this.mTodayWeek - 1);
- var7.append("");
- if (!var6.contains(var7.toString())) {
- continue;
- }
+ while (true) {
+ if (!it.hasNext()) {
+ isSilent = false;
+ break;
+ }
- long var8 = var5.startTimeMillis - var2;
- int var10;
- int var11;
- if (var8 < (long)(CoreService.alarmCycle * 60 * 1000) && var8 > 0L) {
- var10 = Integer.parseInt(var5.start.substring(2, 4));
- var11 = Integer.parseInt(var5.start.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, var10, var11, "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START");
+ Silent silent = (Silent) it.next();
+ String week = silent.week;
+ StringBuilder sb = new StringBuilder();
+// sb.append(this.mTodayWeek - 1);
+ sb.append(this.mTodayWeek);
+ sb.append("");
+ if (week.contains(sb.toString())) {
+ long var9 = silent.startTimeMillis - currenttime;
+ int hour, minutes;
+ StringBuilder sblog;
+ ICLogger.i("startTimeMillis - currenttime " + var9);
+ if (var9 < (long) (CoreService.alarmCycle * 60 * 1000) && var9 > 0L) {
+ hour = Integer.parseInt(silent.start.substring(2, 4));
+ minutes = Integer.parseInt(silent.start.substring(5, 7));
+ AlarmHelper.setTimeAlarm(this.mContext, hour, minutes, OTHER_ALARM_START);
+ sblog = new StringBuilder();
+ sblog.append("设置起始时间=hour");
+ sblog.append(hour);
+ sblog.append("minute+");
+ sblog.append(minutes);
+ ICLogger.i(sblog.toString());
+ }
+
+ var9 = silent.endTimeMillis - currenttime;
+ ICLogger.i("endTimeMillis - currenttime " + var9);
+ if (var9 < (long) (CoreService.alarmCycle * 60 * 1000) && var9 > 0L) {
+ hour = Integer.parseInt(silent.end.substring(2, 4));
+ minutes = Integer.parseInt(silent.end.substring(5, 7));
+ AlarmHelper.setTimeAlarm(this.mContext, hour, minutes, OTHER_ALARM_END);
+ sblog = new StringBuilder();
+ sblog.append("设置结束时间=hour");
+ sblog.append(hour);
+ sblog.append("minute+");
+ sblog.append(minutes);
+ ICLogger.i(sblog.toString());
+ }
+
+ //刚好在silent时段,则直接退出
+ if (silent.startTimeMillis <= currenttime && silent.endTimeMillis > currenttime) {
+ isSilent = true;
+ break;
+ }
+ } else {
+ ICLogger.i(sb + " not in [" + week + "] silent is false");
+ }
}
- var8 = var5.endTimeMillis - var2;
- if (var8 < (long)(CoreService.alarmCycle * 60 * 1000) && var8 > 0L) {
- var10 = Integer.parseInt(var5.end.substring(2, 4));
- var11 = Integer.parseInt(var5.end.substring(5, 7));
- AlarmHelper.setTimeAlarm(this.mContext, var10, var11, "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_END");
- }
+ return isSilent;
+ }
- if (var5.startTimeMillis > var2 || var5.endTimeMillis <= var2) {
- continue;
+ private boolean isStheartRateTime(boolean var1) {
+ long var2 = System.currentTimeMillis();
+ ArrayList var4 = this.stheartRateList;
+ if (this.mTodayWeek == 1) {
+ this.mTodayWeek += 7;
}
- this.mInterval = var5.interval;
- if (!var1) {
+ Iterator var12 = var4.iterator();
+
+ while (true) {
+ if (var12.hasNext()) {
+ StheartRate var5 = (StheartRate) var12.next();
+ String var6 = var5.week;
+ StringBuilder var7 = new StringBuilder();
+ var7.append(this.mTodayWeek - 1);
+ var7.append("");
+ if (!var6.contains(var7.toString())) {
+ continue;
+ }
+
+ long var8 = var5.startTimeMillis - var2;
+ int var10;
+ int var11;
+ if (var8 < (long) (CoreService.alarmCycle * 60 * 1000) && var8 > 0L) {
+ var10 = Integer.parseInt(var5.start.substring(2, 4));
+ var11 = Integer.parseInt(var5.start.substring(5, 7));
+ AlarmHelper.setTimeAlarm(this.mContext, var10, var11, "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START");
+ }
+
+ var8 = var5.endTimeMillis - var2;
+ if (var8 < (long) (CoreService.alarmCycle * 60 * 1000) && var8 > 0L) {
+ var10 = Integer.parseInt(var5.end.substring(2, 4));
+ var11 = Integer.parseInt(var5.end.substring(5, 7));
+ AlarmHelper.setTimeAlarm(this.mContext, var10, var11, "com.enqualcomm.support.OTHER_HEARTRATE_ALARM_END");
+ }
+
+ if (var5.startTimeMillis > var2 || var5.endTimeMillis <= var2) {
+ continue;
+ }
+
+ this.mInterval = var5.interval;
+ if (!var1) {
// AlarmHelper.setRealTimeAlarm(this.mContext, Integer.parseInt(this.mInterval), ACTION_HEATR_RATE_START);
// this.mRuntime.getContextProxy().sendStheartRateBroadcast(ACTION_HEATR_RATE_START, 0);
- }
+ }
- var1 = true;
- break;
- }
+ var1 = true;
+ break;
+ }
+
+ var1 = false;
+ break;
+ }
- var1 = false;
- break;
+ return var1;
}
- return var1;
- }
+ private void onSilentStateChange(boolean var1) {
- private void onSilentStateChange(boolean var1) {
+ SharPreferenceUtil.setPrefBoolean(mContext, "KEY_ISSILENCE", var1);
+ setSilentConfig(mContext, var1);
- SharPreferenceUtil.setPrefBoolean(mContext, "KEY_ISSILENCE", var1);
- setSilentConfig(mContext,var1);
+ if (this.alarms != null) {
+ if (var1) {
+ this.cancelAlarm(this.alarms);
+ } else {
+ this.setNewAlarm(this.alarms);
+ }
+ }
- if (this.alarms != null) {
- if (var1) {
- this.cancelAlarm(this.alarms);
- } else {
- this.setNewAlarm(this.alarms);
- }
- }
+ if (this.voiceNotice != null) {
+ if (var1) {
+ this.cancelNoticeAlarm(this.voiceNotice);
+ } else {
+ this.setNewNoticeAlarm(this.voiceNotice);
+ }
+ }
- if (this.voiceNotice != null) {
- if (var1) {
- this.cancelNoticeAlarm(this.voiceNotice);
- } else {
- this.setNewNoticeAlarm(this.voiceNotice);
- }
}
- }
+ private ArrayList<Alarm> queryAlarm() {
+ ArrayList var1 = this.mDbHelper.queryAlarm();
+ if (!this.mInSilent) {
+ if (this.alarms != null) {
+ this.cancelAlarm(this.alarms);
+ }
- private ArrayList<Alarm> queryAlarm() {
- ArrayList var1 = this.mDbHelper.queryAlarm();
- if (!this.mInSilent) {
- if (this.alarms != null) {
- this.cancelAlarm(this.alarms);
- }
+ this.setNewAlarm(var1);
+ }
- this.setNewAlarm(var1);
+ return var1;
}
- return var1;
- }
-
- private ArrayList<Antioff> queryAntioff() {
- return this.mDbHelper.queryAntioff(true);
- }
-
- private ArrayList<NoticeContent> queryNotice() {
- String var1 = TimeUtil.getSystemTime4();
- ArrayList var2 = this.mDbHelper.queryNotice(var1);
- if (!this.mInSilent) {
- if (this.voiceNotice != null) {
- this.cancelNoticeAlarm(this.voiceNotice);
- }
-
- this.setNewNoticeAlarm(var2);
+ private ArrayList<Antioff> queryAntioff() {
+ return this.mDbHelper.queryAntioff(true);
}
- return var2;
- }
-
- private ArrayList<Silent> querySilent() {
- return this.mDbHelper.querySilence(true);
- }
-
- private ArrayList<StheartRate> queryStheartRate() {
- return this.mDbHelper.queryStheartRate(true);
- }
+ private ArrayList<NoticeContent> queryNotice() {
+ String var1 = TimeUtil.getSystemTime4();
+ ArrayList var2 = this.mDbHelper.queryNotice(var1);
+ if (!this.mInSilent) {
+ if (this.voiceNotice != null) {
+ this.cancelNoticeAlarm(this.voiceNotice);
+ }
- private void setNewAlarm(ArrayList<Alarm> alarmArrayList) {
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.SECOND, 0);
- long currentTime = System.currentTimeMillis();
- Iterator itAlarm = alarmArrayList.iterator();
+ this.setNewNoticeAlarm(var2);
+ }
+ return var2;
+ }
- while (itAlarm.hasNext()){
- Alarm alarm = (Alarm)itAlarm.next();
- if ("ON".equals(alarm.status)) {
- int hour = Integer.parseInt(alarm.time.substring(2, 4));
- int minute = Integer.parseInt(alarm.time.substring(5, 7));
- calendar.set(Calendar.HOUR_OF_DAY, hour);
- calendar.set(Calendar.MINUTE, minute);
+ private ArrayList<Silent> querySilent() {
+ return this.mDbHelper.querySilence(true);
+ }
- char[] weeklist = alarm.week.toCharArray();
- int weeklistlen = weeklist.length;
- ICLogger.i("repeat = "+alarm.week+", list size = "+weeklistlen);
- if (weeklistlen>1) {
- //如果week大于0 则证明有循环,没有循环就证明只是一次的闹铃。
- for (int i = 1; i < weeklistlen; i++) {
+ private ArrayList<StheartRate> queryStheartRate() {
+ return this.mDbHelper.queryStheartRate(true);
+ }
- long tmpTimeInMillis;
- int dayofweek = weeklist[i] - 47;
- calendar.set(Calendar.DAY_OF_WEEK, dayofweek);
- tmpTimeInMillis = calendar.getTimeInMillis();
- if (tmpTimeInMillis <= currentTime) {
- tmpTimeInMillis += ONE_WEEK;
- }
- Date date = new Date(tmpTimeInMillis);
- ICLogger.i("set date "+date.toLocaleString());
- PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, dayofweek);
- AlarmHelper.setAlarm(this.mAlarmManager, tmpTimeInMillis, pendingIntent);
- }
- }else{
- //只是一次的闹铃
- long tmpTimeInMillis;
+ private void setNewAlarm(ArrayList<Alarm> alarmArrayList) {
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.SECOND, 0);
+ long currentTime = System.currentTimeMillis();
+ Iterator itAlarm = alarmArrayList.iterator();
+
+
+ while (itAlarm.hasNext()) {
+ Alarm alarm = (Alarm) itAlarm.next();
+ if ("ON".equals(alarm.status)) {
+ int hour = Integer.parseInt(alarm.time.substring(2, 4));
+ int minute = Integer.parseInt(alarm.time.substring(5, 7));
+ calendar.set(Calendar.HOUR_OF_DAY, hour);
+ calendar.set(Calendar.MINUTE, minute);
+
+ char[] weeklist = alarm.week.toCharArray();
+ int weeklistlen = weeklist.length;
+ ICLogger.i("repeat = " + alarm.week + ", list size = " + weeklistlen);
+ if (weeklistlen > 1) {
+ //如果week大于0 则证明有循环,没有循环就证明只是一次的闹铃。
+ for (int i = 1; i < weeklistlen; i++) {
+
+ long tmpTimeInMillis;
+ int dayofweek = weeklist[i] - 47;
+ calendar.set(Calendar.DAY_OF_WEEK, dayofweek);
+ tmpTimeInMillis = calendar.getTimeInMillis();
+ if (tmpTimeInMillis <= currentTime) {
+ tmpTimeInMillis += ONE_WEEK;
+ }
+ Date date = new Date(tmpTimeInMillis);
+ ICLogger.i("set date " + date.toLocaleString());
+ PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, dayofweek);
+ AlarmHelper.setAlarm(this.mAlarmManager, tmpTimeInMillis, pendingIntent);
+ }
+ } else {
+ //只是一次的闹铃
+ long tmpTimeInMillis;
// int dayofweek = weeklist[i] - 47;
// calendar.set(Calendar.DAY_OF_WEEK, dayofweek);
// tmpTimeInMillis = calendar.getTimeInMillis();
- Date date = new Date(System.currentTimeMillis());
- ICLogger.i("date "+date.toLocaleString());
- Calendar c = Calendar.getInstance();
- c.setTime(date);
- int wek = c.get(Calendar.DAY_OF_WEEK);
- calendar.set(Calendar.DAY_OF_WEEK, wek);
- tmpTimeInMillis = calendar.getTimeInMillis();
- if (tmpTimeInMillis <= currentTime) {
- tmpTimeInMillis += ONE_DAY;
- }
- date = new Date(tmpTimeInMillis);
- c = Calendar.getInstance();
- c.setTime(date);
- wek = c.get(Calendar.DAY_OF_WEEK);
-
- ICLogger.i("set date "+date.toLocaleString());
+ Date date = new Date(System.currentTimeMillis());
+ ICLogger.i("date " + date.toLocaleString());
+ Calendar c = Calendar.getInstance();
+ c.setTime(date);
+ int wek = c.get(Calendar.DAY_OF_WEEK);
+ calendar.set(Calendar.DAY_OF_WEEK, wek);
+ tmpTimeInMillis = calendar.getTimeInMillis();
+ if (tmpTimeInMillis <= currentTime) {
+ tmpTimeInMillis += ONE_DAY;
+ }
+ date = new Date(tmpTimeInMillis);
+ c = Calendar.getInstance();
+ c.setTime(date);
+ wek = c.get(Calendar.DAY_OF_WEEK);
+
+ ICLogger.i("set date " + date.toLocaleString());
+
+ PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, wek);
+ AlarmHelper.setAlarmOnce(this.mAlarmManager, tmpTimeInMillis, pendingIntent);
+ }
- PendingIntent pendingIntent = this.getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, wek);
- AlarmHelper.setAlarmOnce(this.mAlarmManager, tmpTimeInMillis, pendingIntent);
+ }
}
+ }
- }
- }
- }
-
- private void setNewNoticeAlarm(ArrayList<NoticeContent> var1) {
- Iterator var19 = var1.iterator();
-
- while(var19.hasNext()) {
- NoticeContent var2 = (NoticeContent)var19.next();
- String var3 = var2.noticeTime;
- String var4 = var2.noticeName;
- String var5 = var2.noticeNumber;
- String var6 = var2.noticeID;
- String var7 = var2.noticeCategory;
- String var8 = var2.noticeFrequency;
- String var9 = var2.noticeContent;
- Calendar var10 = Calendar.getInstance();
- long var11 = System.currentTimeMillis();
- var10.set(Calendar.SECOND, 0);
- if (var3 != null) {
- String var13 = var3.substring(0, 4);
- String var20 = var3.substring(4, 6);
- String var14 = var3.substring(6, 8);
- String var15 = var3.substring(8, 10);
- String var16 = var3.substring(10, 12);
- var10.set(Calendar.YEAR, Integer.parseInt(var13));
- var10.set(Calendar.MONTH, Integer.parseInt(var20) - 1);
- var10.set(Calendar.DATE, Integer.parseInt(var14));
- var10.set(Calendar.HOUR_OF_DAY, Integer.parseInt(var15));
- var10.set(Calendar.MINUTE, Integer.parseInt(var16));
- long var17 = var10.getTimeInMillis();
- if (var17 >= var11) {
- PendingIntent var21 = this.getPendingIntent(var3, var4, var5, var6, var7, var8, var9);
- AlarmHelper.setAlarm(this.mAlarmManager, var17, var21);
+ private void setNewNoticeAlarm(ArrayList<NoticeContent> var1) {
+ Iterator var19 = var1.iterator();
+
+ while (var19.hasNext()) {
+ NoticeContent var2 = (NoticeContent) var19.next();
+ String var3 = var2.noticeTime;
+ String var4 = var2.noticeName;
+ String var5 = var2.noticeNumber;
+ String var6 = var2.noticeID;
+ String var7 = var2.noticeCategory;
+ String var8 = var2.noticeFrequency;
+ String var9 = var2.noticeContent;
+ Calendar var10 = Calendar.getInstance();
+ long var11 = System.currentTimeMillis();
+ var10.set(Calendar.SECOND, 0);
+ if (var3 != null) {
+ String var13 = var3.substring(0, 4);
+ String var20 = var3.substring(4, 6);
+ String var14 = var3.substring(6, 8);
+ String var15 = var3.substring(8, 10);
+ String var16 = var3.substring(10, 12);
+ var10.set(Calendar.YEAR, Integer.parseInt(var13));
+ var10.set(Calendar.MONTH, Integer.parseInt(var20) - 1);
+ var10.set(Calendar.DATE, Integer.parseInt(var14));
+ var10.set(Calendar.HOUR_OF_DAY, Integer.parseInt(var15));
+ var10.set(Calendar.MINUTE, Integer.parseInt(var16));
+ long var17 = var10.getTimeInMillis();
+ if (var17 >= var11) {
+ PendingIntent var21 = this.getPendingIntent(var3, var4, var5, var6, var7, var8, var9);
+ AlarmHelper.setAlarm(this.mAlarmManager, var17, var21);
+ }
+ }
}
- }
- }
-
- }
-
- public void onAlarmClock(Connection var1, Runtime runtime) {
- //每个心跳检查静默消息状态
- this.handleSilent(runtime, true);
- }
-
- public void onAttach(Connection var1, Runtime runtime) {
- this.mRuntime = runtime;
- this.mConnection = var1;
- this.mContext = runtime.getContextProxy().context;
- this.mAlarmManager = (AlarmManager)this.mContext.getSystemService(Context.ALARM_SERVICE);
- this.mDbHelper = runtime.getDbHelper();
- this.silentList = this.querySilent();
- this.getSilentListStartAndEndTime();
- this.mInSilent = this.isSilentTime();
- DBHelper var3 = this.mDbHelper;
- String var4;
- if (this.mInSilent) {
- var4 = "ON";
- } else {
- var4 = "OFF";
+
}
- var3.upDateorInsertDeviceStatus(var4);
- this.handSilence(this.mContext, this.mInSilent);
+ public void onAlarmClock(Connection var1, Runtime runtime) {
+ //每个心跳检查静默消息状态
+ this.handleSilent(runtime, true);
+ }
+
+ public void onAttach(Connection var1, Runtime runtime) {
+ this.mRuntime = runtime;
+ this.mConnection = var1;
+ this.mContext = runtime.getContextProxy().context;
+ this.mAlarmManager = (AlarmManager) this.mContext.getSystemService(Context.ALARM_SERVICE);
+ this.mDbHelper = runtime.getDbHelper();
+ this.silentList = this.querySilent();
+ this.getSilentListStartAndEndTime();
+ this.mInSilent = this.isSilentTime();
+ DBHelper var3 = this.mDbHelper;
+ String var4;
+ if (this.mInSilent) {
+ var4 = "ON";
+ } else {
+ var4 = "OFF";
+ }
+
+ var3.upDateorInsertDeviceStatus(var4);
+ this.handSilence(this.mContext, this.mInSilent);
/*
this.stheartRateList = this.queryStheartRate();
this.getStartAndEndStheartRateTime();
this.mIsStheartRate = this.isStheartRateTime(false);
*/
- this.alarms = this.queryAlarm();
- this.voiceNotice = this.queryNotice();
- runtime.getContextProxy().context.getContentResolver().registerContentObserver(ICContentProvider.SILENT_URI, false, this.mContentObserver);
- this.mAlramReceiver = new SilentManager.AlramReceiver();
- IntentFilter var5 = new IntentFilter();
- var5.addAction(ACTION_NOTICE_ALARM_CHANGE);
- var5.addAction(ACTION_ALARM_ALARM_CHANGE);
- // var5.addAction("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE");
- // var5.addAction("com.eqc.heartrate.action.RESULT");
- this.mContext.registerReceiver(this.mAlramReceiver, var5);
- runtime.getContextProxy().getTelephonyManager().listen(this.phoneStateListener, 32);
- }
-
- public void onDetach(Connection var1, Runtime var2) {
- var2.getContextProxy().context.getContentResolver().unregisterContentObserver(this.mContentObserver);
- this.mContext.unregisterReceiver(this.mAlramReceiver);
- }
-
- @Override
- public boolean onUserRequest(Intent var1, Connection var2, Runtime runtime) {
- String action = var1.getAction();
- if (ACTION_CARE_ALARM.equals(action)) {
- String alarmTime = var1.getDataString(); //alarm:ST00.43,W,CON,闹铃,2
- String currentTime = TimeUtil.getSystemTime();
- alarmTime.substring(6).split("\\.");
- int alarmTime_minutes = Integer.parseInt(alarmTime.substring(6).split("\\.")[1].substring(0, 2));
- int alarmTime_hour = Integer.parseInt(alarmTime.substring(6).split("\\.")[0].substring(2));
- String[] currentTimeArray = currentTime.split(";")[1].split(":");
- int currentTime_hour = Integer.parseInt(currentTimeArray[0]);
- int currentTime_minutes = Integer.parseInt(currentTimeArray[1]);
- ICLogger.i("alarm time["+alarmTime_hour+":"+alarmTime_minutes+"], current time["+currentTime_hour+":"+currentTime_minutes+"]");
- if (alarmTime_hour != currentTime_hour || alarmTime_minutes != currentTime_minutes) {
- return false;
- }
-
- if (this.isIdle(this.mContext)) {
- try {
- Intent intent = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(alarmTime));
- intent.putExtra("closeAlarm", 0);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- this.mContext.startActivity(intent);
- } catch (Exception e) {
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
+ this.alarms = this.queryAlarm();
+ this.voiceNotice = this.queryNotice();
+ runtime.getContextProxy().context.getContentResolver().registerContentObserver(ICContentProvider.SILENT_URI, false, this.mContentObserver);
+ this.mAlramReceiver = new SilentManager.AlramReceiver();
+ IntentFilter var5 = new IntentFilter();
+ var5.addAction(ACTION_NOTICE_ALARM_CHANGE);
+ var5.addAction(ACTION_ALARM_ALARM_CHANGE);
+ // var5.addAction("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE");
+ // var5.addAction("com.eqc.heartrate.action.RESULT");
+ this.mContext.registerReceiver(this.mAlramReceiver, var5);
+ runtime.getContextProxy().getTelephonyManager().listen(this.phoneStateListener, 32);
+ }
+
+ public void onDetach(Connection var1, Runtime var2) {
+ var2.getContextProxy().context.getContentResolver().unregisterContentObserver(this.mContentObserver);
+ this.mContext.unregisterReceiver(this.mAlramReceiver);
+ }
+
+ @Override
+ public boolean onUserRequest(Intent var1, Connection var2, Runtime runtime) {
+ String action = var1.getAction();
+ if (ACTION_CARE_ALARM.equals(action)) {
+ String alarmTime = var1.getDataString(); //alarm:ST00.43,W,CON,闹铃,2
+ String currentTime = TimeUtil.getSystemTime();
+ alarmTime.substring(6).split("\\.");
+ int alarmTime_minutes = Integer.parseInt(alarmTime.substring(6).split("\\.")[1].substring(0, 2));
+ int alarmTime_hour = Integer.parseInt(alarmTime.substring(6).split("\\.")[0].substring(2));
+ String[] currentTimeArray = currentTime.split(";")[1].split(":");
+ int currentTime_hour = Integer.parseInt(currentTimeArray[0]);
+ int currentTime_minutes = Integer.parseInt(currentTimeArray[1]);
+ ICLogger.i("alarm time[" + alarmTime_hour + ":" + alarmTime_minutes + "], current time[" + currentTime_hour + ":" + currentTime_minutes + "]");
+ if (alarmTime_hour != currentTime_hour || alarmTime_minutes != currentTime_minutes) {
+ return false;
+ }
+
+ if (this.isIdle(this.mContext)) {
+ try {
+ Intent intent = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(alarmTime));
+ intent.putExtra("closeAlarm", 0);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.mContext.startActivity(intent);
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
+ }
+ } else if ("com.enqualcomm.support.ACTION_NOTICE_ALARM".equals(action)) {
+ String alarmTime = var1.getDataString();
+ if (this.isIdle(this.mContext)) {
+ try {
+ var1 = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(alarmTime));
+ var1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ this.mContext.startActivity(var1);
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
+ }
+ } else {
+ ICLogger.i("静默闹钟来了");
+ boolean silentchange;
+ if (!"com.eqc.heartrate.action.SILENT_START".equals(action) && !"com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START".equals(action)) {
+ silentchange = false;
+ } else {
+ silentchange = true;
+ }
+
+ //this.handleSilent(runtime, silentchange ^ true);
}
- }
- } else if ("com.enqualcomm.support.ACTION_NOTICE_ALARM".equals(action)) {
- String alarmTime = var1.getDataString();
- if (this.isIdle(this.mContext)) {
- try {
- var1 = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(alarmTime));
- var1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- this.mContext.startActivity(var1);
- } catch (Exception e) {
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
+
+ return false;
+ }
+
+ @Override
+ public boolean onUserRequest(Message paramMessage, Connection paramConnection, Runtime paramRuntime) {
+ return false;
+ }
+
+ class AlramReceiver extends BroadcastReceiver {
+ AlramReceiver() {
}
- }
- } else {
- ICLogger.i("静默闹钟来了");
- boolean silentchange;
- if (!"com.eqc.heartrate.action.SILENT_START".equals(action) && !"com.enqualcomm.support.OTHER_HEARTRATE_ALARM_START".equals(action)) {
- silentchange = false;
- } else {
- silentchange = true;
- }
-
- //this.handleSilent(runtime, silentchange ^ true);
- }
-
- return false;
- }
-
- @Override
- public boolean onUserRequest(Message paramMessage, Connection paramConnection, Runtime paramRuntime) {
- return false;
- }
-
- class AlramReceiver extends BroadcastReceiver {
- AlramReceiver() {
- }
-
- public void onReceive(Context var1, Intent var2) {
- String action = var2.getAction();
- StringBuilder var3 = new StringBuilder();
- var3.append("action = ");
- var3.append(action);
- ICLogger.i(var3.toString());
- if (ACTION_NOTICE_ALARM_CHANGE.equals(action)) {
- SilentManager.this.voiceNotice = SilentManager.this.queryNotice();
- } else if (ACTION_ALARM_ALARM_CHANGE.equals(action)) {
- SilentManager.this.alarms = SilentManager.this.queryAlarm();
- } else if ("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE".equals(action)) {
- SilentManager.this.stheartRateList = SilentManager.this.queryStheartRate();
- SilentManager.this.getStartAndEndStheartRateTime();
- SilentManager.this.isStheartRateTime(false);
- } else if ("com.eqc.heartrate.action.RESULT".equals(action)) {
- String time = var2.getStringExtra("time");
- int var4 = var2.getIntExtra("value", 0);
- int var5 = var2.getIntExtra("type", 0);
- StringBuilder var7 = new StringBuilder();
- var7.append("(");
- var7.append(time);
- var7.append("@");
- var7.append(var4);
- var7.append("@");
- var7.append(var5);
- var7.append(")");
- time = var7.toString();
+
+ public void onReceive(Context var1, Intent var2) {
+ String action = var2.getAction();
+ StringBuilder var3 = new StringBuilder();
+ var3.append("action = ");
+ var3.append(action);
+ ICLogger.i(var3.toString());
+ if (ACTION_NOTICE_ALARM_CHANGE.equals(action)) {
+ SilentManager.this.voiceNotice = SilentManager.this.queryNotice();
+ } else if (ACTION_ALARM_ALARM_CHANGE.equals(action)) {
+ SilentManager.this.alarms = SilentManager.this.queryAlarm();
+ } else if ("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE".equals(action)) {
+ SilentManager.this.stheartRateList = SilentManager.this.queryStheartRate();
+ SilentManager.this.getStartAndEndStheartRateTime();
+ SilentManager.this.isStheartRateTime(false);
+ } else if ("com.eqc.heartrate.action.RESULT".equals(action)) {
+ String time = var2.getStringExtra("time");
+ int var4 = var2.getIntExtra("value", 0);
+ int var5 = var2.getIntExtra("type", 0);
+ StringBuilder var7 = new StringBuilder();
+ var7.append("(");
+ var7.append(time);
+ var7.append("@");
+ var7.append(var4);
+ var7.append("@");
+ var7.append(var5);
+ var7.append(")");
+ time = var7.toString();
// SilentManager.this.mConnection.send(API.H60(SilentManager.this.mRuntime, var6));
- } else if (ACTION_ANTIOFF_ALARM_CHANGE.equals(action)) {
- SilentManager.this.sAntioffList = SilentManager.this.queryAntioff();
- SilentManager.this.getStartAndEndSantioffTime();
- SilentManager.this.mIsNeedAntioff = SilentManager.this.isAntioffTime(false);
- }
+ } else if (ACTION_ANTIOFF_ALARM_CHANGE.equals(action)) {
+ SilentManager.this.sAntioffList = SilentManager.this.queryAntioff();
+ SilentManager.this.getStartAndEndSantioffTime();
+ SilentManager.this.mIsNeedAntioff = SilentManager.this.isAntioffTime(false);
+ }
+ }
}
- }
}
\ No newline at end of file
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
-import android.os.Build;
import android.os.Handler;
import android.os.Message;
import android.os.PowerManager;
import com.enqualcomm.support.CoreService;
import com.enqualcomm.support.LocationClient;
import com.enqualcomm.support.bean.EventLooperHandlerThread;
+import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.service.AntiMonitorService;
import com.enqualcomm.support.service.AudioService;
-import com.enqualcomm.support.service.Deliver;
import com.ic.protocols.protocolAPIHelper;
-import com.enqualcomm.support.bean.Runtime;
-//import static android.content.Context.BATTERY_SERVICE;
import static android.os.BatteryManager.BATTERY_STATUS_CHARGING;
import static android.os.BatteryManager.BATTERY_STATUS_DISCHARGING;
import static android.os.BatteryManager.BATTERY_STATUS_FULL;
import static com.enqualcomm.support.Constants.ACTION_BATTERYLOW;
import static com.enqualcomm.support.Constants.KEY_BATTERY_EVENT;
+//import static android.content.Context.BATTERY_SERVICE;
+
public class BatteryUtil {
- private BroadcastReceiver batteryChangedReceiver = new BroadcastReceiver() {
- public void onReceive(Context param1Context, Intent intent) {
- if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
- int extra_status = intent.getIntExtra(EXTRA_STATUS , BATTERY_STATUS_UNKNOWN );
- StringBuilder msg=new StringBuilder("EXTRA_STATUS = ");
- switch (extra_status){
- case BATTERY_STATUS_CHARGING:
- msg.append("BATTERY_STATUS_CHARGING ");
- break;
- case BATTERY_STATUS_UNKNOWN:
- msg.append("BATTERY_STATUS_UNKNOWN ");
- break;
- case BATTERY_STATUS_DISCHARGING:
- msg.append("BATTERY_STATUS_DISCHARGING ");
- break;
- case BATTERY_STATUS_FULL:
- msg.append("BATTERY_STATUS_FULL ");
- if (Config.isL03Tracker){
- LedUtil.setRedLedOn(false);
- LedUtil.setBlueLedOn(true);
- }
- break;
- case BATTERY_STATUS_NOT_CHARGING:
- msg.append("BATTERY_STATUS_NOT_CHARGING ");
- break;
+ private BroadcastReceiver batteryChangedReceiver = new BroadcastReceiver() {
+ public void onReceive(Context param1Context, Intent intent) {
+ if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) {
+ int extra_status = intent.getIntExtra(EXTRA_STATUS, BATTERY_STATUS_UNKNOWN);
+ StringBuilder msg = new StringBuilder("EXTRA_STATUS = ");
+ switch (extra_status) {
+ case BATTERY_STATUS_CHARGING:
+ msg.append("BATTERY_STATUS_CHARGING ");
+ break;
+ case BATTERY_STATUS_UNKNOWN:
+ msg.append("BATTERY_STATUS_UNKNOWN ");
+ break;
+ case BATTERY_STATUS_DISCHARGING:
+ msg.append("BATTERY_STATUS_DISCHARGING ");
+ break;
+ case BATTERY_STATUS_FULL:
+ msg.append("BATTERY_STATUS_FULL ");
+ if (Config.isL03Tracker) {
+ LedUtil.setRedLedOn(false);
+ LedUtil.setBlueLedOn(true);
+ }
+ break;
+ case BATTERY_STATUS_NOT_CHARGING:
+ msg.append("BATTERY_STATUS_NOT_CHARGING ");
+ break;
- }
- msg.append("; ");
- if (extra_status == BATTERY_STATUS_CHARGING) {
- if(mRuntime.getBatterychanging()==false){
- ICLogger.i("Send BatteryCharging event!");
- connection.send(protocolAPIHelper.getChargingMSG(1));
- }
- mRuntime.setBatterychanging(true);
- mRuntime.setBatteryLow(false);
- } else {
- if(mRuntime.getBatterychanging()==true){
- //send
- ICLogger.i("Send no BatteryCharging event!");
- connection.send(protocolAPIHelper.getChargingMSG(0));
- }
- mRuntime.setBatterychanging(false);
- }
- int batLevel = intent.getIntExtra(EXTRA_LEVEL, 0) * 100 / intent.getIntExtra(EXTRA_SCALE, 100);
- // 当前电池电压
- int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1);
- mRuntime.setBatteryVoltage(batteryVolt);
- msg.append("BatteryLevel "+batLevel + " BatteryVotage "+batteryVolt+"; ");
- if (Config.LOG_TOFILE)ICLogger.logToFile("Battery",msg.toString());
- ICLogger.i(msg.toString());
- //处理电压
- process_battery_level(param1Context,batLevel);
+ }
+ msg.append("; ");
+ if (extra_status == BATTERY_STATUS_CHARGING) {
+ if (mRuntime.getBatterychanging() == false) {
+ ICLogger.i("Send BatteryCharging event!");
+ connection.send(protocolAPIHelper.getChargingMSG(1));
+ }
+ mRuntime.setBatterychanging(true);
+ mRuntime.setBatteryLow(false);
+ } else {
+ if (mRuntime.getBatterychanging() == true) {
+ //send
+ ICLogger.i("Send no BatteryCharging event!");
+ connection.send(protocolAPIHelper.getChargingMSG(0));
+ }
+ mRuntime.setBatterychanging(false);
+ }
+ int batLevel = intent.getIntExtra(EXTRA_LEVEL, 0) * 100 / intent.getIntExtra(EXTRA_SCALE, 100);
+ // 当前电池电压
+ int batteryVolt = intent.getIntExtra(EXTRA_VOLTAGE, -1);
+ mRuntime.setBatteryVoltage(batteryVolt);
+ msg.append("BatteryLevel " + batLevel + " BatteryVotage " + batteryVolt + "; ");
+ if (Config.LOG_TOFILE) ICLogger.logToFile("Battery", msg.toString());
+ ICLogger.i(msg.toString());
+ //处理电压
+ process_battery_level(param1Context, batLevel);
- }else if (Intent.ACTION_BATTERY_LOW.equals(intent.getAction())) {
- // mRuntime.setBatteryLow(true);
- // if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow !");
- // mRuntime.setAlarmType(false,mRuntime.getBatteryLow(),false,false);
- //trigger AP10 报警定位
- // connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(mRuntime)));
+ } else if (Intent.ACTION_BATTERY_LOW.equals(intent.getAction())) {
+ // mRuntime.setBatteryLow(true);
+ // if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow !");
+ // mRuntime.setAlarmType(false,mRuntime.getBatteryLow(),false,false);
+ //trigger AP10 报警定位
+ // connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.getWarningMSG(mRuntime)));
- }else if (Intent.ACTION_BATTERY_OKAY.equals(intent.getAction())){
- ICLogger.i("Battery OKAY !");
- if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","Battery OKAY !");
- send_batterylow_event_broadcast(param1Context,0);
- }else if (Intent.ACTION_POWER_CONNECTED.equals(intent.getAction())){
- ICLogger.i("ACTION_POWER_CONNECTED !");
- mRuntime.setPowerConnected(true);
- if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","ACTION_POWER_CONNECTED!");
- if (Config.isL03Tracker){
- LedUtil.setRedLedOn(true);
- }
+ } else if (Intent.ACTION_BATTERY_OKAY.equals(intent.getAction())) {
+ ICLogger.i("Battery OKAY !");
+ if (Config.LOG_TOFILE) ICLogger.logToFile("Battery", "Battery OKAY !");
+ send_batterylow_event_broadcast(param1Context, 0);
+ } else if (Intent.ACTION_POWER_CONNECTED.equals(intent.getAction())) {
+ ICLogger.i("ACTION_POWER_CONNECTED !");
+ mRuntime.setPowerConnected(true);
+ if (Config.LOG_TOFILE) ICLogger.logToFile("Battery", "ACTION_POWER_CONNECTED!");
+ if (Config.isL03Tracker) {
+ LedUtil.setRedLedOn(true);
+ }
- }else if (Intent.ACTION_POWER_DISCONNECTED.equals(intent.getAction())){
- ICLogger.i("ACTION_POWER_DISCONNECTED!");
- mRuntime.setPowerConnected(false);
- if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","ACTION_POWER_DISCONNECTED !");
+ } else if (Intent.ACTION_POWER_DISCONNECTED.equals(intent.getAction())) {
+ ICLogger.i("ACTION_POWER_DISCONNECTED!");
+ mRuntime.setPowerConnected(false);
+ if (Config.LOG_TOFILE) ICLogger.logToFile("Battery", "ACTION_POWER_DISCONNECTED !");
- if (Config.isL03Tracker){
- LedUtil.setRedLedOn(false);
- }
+ if (Config.isL03Tracker) {
+ LedUtil.setRedLedOn(false);
+ }
+ }
}
- }
};
- private Handler mHandler=null;
- PowerManager.WakeLock mWakeLock = null;
+ private Handler mHandler = null;
+ PowerManager.WakeLock mWakeLock = null;
- private static void play_waning_notify(Context context){
- AudioService.getInstance().play(context.getAssets(), "warning.mp3");
- }
+ private static void play_waning_notify(Context context) {
+ AudioService.getInstance().play(context.getAssets(), "warning.mp3");
+ }
- //根据电池电压进行低电报警等状态处理
- public void process_battery_level(Context param1Context, int batLevel){
- if (batLevel >= 100) {
- mRuntime.setBattery(String.format("%03d",100));
- mRuntime.setBattery(100);
- mRuntime.setHaveBatteryChange(false);
- mRuntime.setBatteryLow(false);
- } else if (batLevel<100 && batLevel >= 25) {
- mRuntime.setBattery(String.format("%03d",batLevel));
- mRuntime.setBattery(batLevel);
- mRuntime.setHaveBatteryChange(false);
- mRuntime.setBatteryLow(false);
- } else if (batLevel<25 && batLevel > 15) {
- mRuntime.setBattery(String.format("%03d",batLevel));
- mRuntime.setBattery(batLevel);
- mRuntime.setHaveBatteryChange(true);
- mRuntime.setBatteryLow(false);
- } else if (batLevel<=15 && batLevel > 10) {
- if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 15%!");
- checkAndSendBatteryEvent(param1Context,mRuntime);
- mRuntime.setBattery(String.format("%03d",batLevel));
- mRuntime.setBattery(batLevel);
- mRuntime.setHaveBatteryChange(true);
- mRuntime.setBatteryLow(true);
- } else if (batLevel<=10 && batLevel > 5) {
- if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 10%!");
- checkAndSendBatteryEvent(param1Context,mRuntime);
- mRuntime.setBattery(String.format("%03d",batLevel));
- mRuntime.setBattery(batLevel);
- mRuntime.setHaveBatteryChange(true);
- mRuntime.setBatteryLow(true);
- } else {
- if (Config.LOG_TOFILE) ICLogger.logToFile("Battery","BatteryLow less than 5% !");
- checkAndSendBatteryEvent(param1Context,mRuntime);
- mRuntime.setBattery(String.format("%03d",batLevel));
- mRuntime.setBattery(batLevel);
- mRuntime.setHaveBatteryChange(true);
- mRuntime.setBatteryLow(true);
+ //根据电池电压进行低电报警等状态处理
+ public void process_battery_level(Context param1Context, int batLevel) {
+ if (batLevel >= 100) {
+ mRuntime.setBattery(String.format("%03d", 100));
+ mRuntime.setBattery(100);
+ mRuntime.setHaveBatteryChange(false);
+ mRuntime.setBatteryLow(false);
+ } else if (batLevel < 100 && batLevel >= 25) {
+ mRuntime.setBattery(String.format("%03d", batLevel));
+ mRuntime.setBattery(batLevel);
+ mRuntime.setHaveBatteryChange(false);
+ mRuntime.setBatteryLow(false);
+ } else if (batLevel < 25 && batLevel > 15) {
+ mRuntime.setBattery(String.format("%03d", batLevel));
+ mRuntime.setBattery(batLevel);
+ mRuntime.setHaveBatteryChange(true);
+ mRuntime.setBatteryLow(false);
+ } else if (batLevel <= 15 && batLevel > 10) {
+ if (Config.LOG_TOFILE) ICLogger.logToFile("Battery", "BatteryLow less than 15%!");
+ checkAndSendBatteryEvent(param1Context, mRuntime);
+ mRuntime.setBattery(String.format("%03d", batLevel));
+ mRuntime.setBattery(batLevel);
+ mRuntime.setHaveBatteryChange(true);
+ mRuntime.setBatteryLow(true);
+ } else if (batLevel <= 10 && batLevel > 5) {
+ if (Config.LOG_TOFILE) ICLogger.logToFile("Battery", "BatteryLow less than 10%!");
+ checkAndSendBatteryEvent(param1Context, mRuntime);
+ mRuntime.setBattery(String.format("%03d", batLevel));
+ mRuntime.setBattery(batLevel);
+ mRuntime.setHaveBatteryChange(true);
+ mRuntime.setBatteryLow(true);
+ } else {
+ if (Config.LOG_TOFILE) ICLogger.logToFile("Battery", "BatteryLow less than 5% !");
+ checkAndSendBatteryEvent(param1Context, mRuntime);
+ mRuntime.setBattery(String.format("%03d", batLevel));
+ mRuntime.setBattery(batLevel);
+ mRuntime.setHaveBatteryChange(true);
+ mRuntime.setBatteryLow(true);
+ }
}
- }
- public static void checkAndSendBatteryEvent(Context context, Runtime runtime){
+ public static void checkAndSendBatteryEvent(Context context, Runtime runtime) {
- //没有充电,上次电池level > 15% , 上次电池并且不是 低电状态,则报警
- if (runtime.isPowerConnected()==false && runtime.getBatterylevel()<= 15 && runtime.getBatterylevel()> 10 && runtime.getBatteryLow()==false) {
- Intent intent = new Intent();
- intent.setAction(ACTION_BATTERYLOW);
- intent.putExtra(KEY_BATTERY_EVENT, 1);
- context.sendBroadcast(intent);
- play_waning_notify(context);
- runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);
- //trigger AP10 报警定位
+ //没有充电,上次电池level > 15% , 上次电池并且不是 低电状态,则报警
+ if (runtime.isPowerConnected() == false && runtime.getBatterylevel() <= 15 && runtime.getBatterylevel() > 10 && runtime.getBatteryLow() == false) {
+ Intent intent = new Intent();
+ intent.setAction(ACTION_BATTERYLOW);
+ intent.putExtra(KEY_BATTERY_EVENT, 1);
+ context.sendBroadcast(intent);
+ play_waning_notify(context);
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);
+ //trigger AP10 报警定位
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
- }else if (runtime.isPowerConnected()==false && runtime.getBatterylevel()<= 10 && runtime.getBatterylevel()> 5 && runtime.getBatteryLow()==false) {
- //百分之10以内的还不能正常报数,需要后面再优化
- Intent intent=new Intent();
- intent.setAction(ACTION_BATTERYLOW);
- intent.putExtra(KEY_BATTERY_EVENT,1);
- context.sendBroadcast(intent);
- play_waning_notify(context);
- runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);
- //trigger AP10 报警定位
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
+ } else if (runtime.isPowerConnected() == false && runtime.getBatterylevel() <= 10 && runtime.getBatterylevel() > 5 && runtime.getBatteryLow() == false) {
+ //百分之10以内的还不能正常报数,需要后面再优化
+ Intent intent = new Intent();
+ intent.setAction(ACTION_BATTERYLOW);
+ intent.putExtra(KEY_BATTERY_EVENT, 1);
+ context.sendBroadcast(intent);
+ play_waning_notify(context);
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);
+ //trigger AP10 报警定位
// Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
- }else if (runtime.isPowerConnected()==false && runtime.getBatterylevel()<= 5 ) {
- //没有充电,上次电池level > 15% , 上次电池并且不是 电池低电状态,则报警
- Intent intent=new Intent();
- intent.setAction(ACTION_BATTERYLOW);
- intent.putExtra(KEY_BATTERY_EVENT,1);
- context.sendBroadcast(intent);
- play_waning_notify(context);
- runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);
- //trigger AP10 报警定位
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
+ } else if (runtime.isPowerConnected() == false && runtime.getBatterylevel() <= 5) {
+ //没有充电,上次电池level > 15% , 上次电池并且不是 电池低电状态,则报警
+ Intent intent = new Intent();
+ intent.setAction(ACTION_BATTERYLOW);
+ intent.putExtra(KEY_BATTERY_EVENT, 1);
+ context.sendBroadcast(intent);
+ play_waning_notify(context);
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_LOWBATTERY);
+ //trigger AP10 报警定位
// Deliver.sendLocationMSG( protocolAPIHelper.getWarningMSG(runtime));
- ICLogger.i("triggerSOSLocationProcess ");
- LocationClient.getInstance().triggerSOSLocationProcess();
+ ICLogger.i("triggerSOSLocationProcess ");
+ LocationClient.getInstance().triggerSOSLocationProcess();
+ }
}
- }
- private void send_batterylow_event_broadcast(Context context,int batlow){
- mHandler.post(new Runnable() {
- @Override
- public void run() {
- Intent intent=new Intent();
- intent.setAction(ACTION_BATTERYLOW);
- intent.putExtra(KEY_BATTERY_EVENT,batlow);
- context.sendBroadcast(intent);
- }
- });
- }
- private StringBuffer mBuffer;
-
- Runtime mRuntime;
- Connection connection;
- public BatteryUtil(Runtime paramRuntime,Connection _connection) {
- this.mRuntime = paramRuntime;
- connection = _connection;
- if (mHandler==null) {
- mHandler = new Handler(EventLooperHandlerThread.makeLooper(BatteryUtil.class.getSimpleName())) {
- public void handleMessage(Message msg) {
- super.handleMessage(msg);
- if (msg.what == 100) {
- if (mWakeLock != null && mWakeLock.isHeld()) {
- mWakeLock.release();
+ private void send_batterylow_event_broadcast(Context context, int batlow) {
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ Intent intent = new Intent();
+ intent.setAction(ACTION_BATTERYLOW);
+ intent.putExtra(KEY_BATTERY_EVENT, batlow);
+ context.sendBroadcast(intent);
}
- }else if (msg.what == 200){
- AudioService.getInstance().stop();
- }
- }
- };
+ });
}
- if (mWakeLock==null) {
- PowerManager mPowerManager = (PowerManager) CoreService.getInstance().getSystemService(Context.POWER_SERVICE);
- mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, AntiMonitorService.class.getSimpleName());
+
+ private StringBuffer mBuffer;
+
+ Runtime mRuntime;
+ Connection connection;
+
+ public BatteryUtil(Runtime paramRuntime, Connection _connection) {
+ this.mRuntime = paramRuntime;
+ connection = _connection;
+
+ if (mHandler == null) {
+ mHandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper()) {
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ if (msg.what == 100) {
+ if (mWakeLock != null && mWakeLock.isHeld()) {
+ mWakeLock.release();
+ }
+ } else if (msg.what == 200) {
+ AudioService.getInstance().stop();
+ }
+ }
+ };
+ }
+ if (mWakeLock == null) {
+ PowerManager mPowerManager = (PowerManager) CoreService.getInstance().getSystemService(Context.POWER_SERVICE);
+ mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, AntiMonitorService.class.getSimpleName());
+ }
+
}
- }
-
- public void registerBroadReceiver() {
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
- intentFilter.addAction(Intent.ACTION_BATTERY_LOW);
- intentFilter.addAction(Intent.ACTION_BATTERY_OKAY);
- intentFilter.addAction(Intent.ACTION_POWER_CONNECTED);
- intentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED);
- (this.mRuntime.getContextProxy()).context.registerReceiver(this.batteryChangedReceiver, intentFilter);
- }
+ public void registerBroadReceiver() {
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
+ intentFilter.addAction(Intent.ACTION_BATTERY_LOW);
+ intentFilter.addAction(Intent.ACTION_BATTERY_OKAY);
+ intentFilter.addAction(Intent.ACTION_POWER_CONNECTED);
+ intentFilter.addAction(Intent.ACTION_POWER_DISCONNECTED);
+ (this.mRuntime.getContextProxy()).context.registerReceiver(this.batteryChangedReceiver, intentFilter);
+ }
- public int getBatteryLevel(Context context) {
+ public int getBatteryLevel(Context context) {
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// BatteryManager batteryManager = (BatteryManager)context.getSystemService(BATTERY_SERVICE);
// return batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
// } else {
- Intent intent = new ContextWrapper(context.getApplicationContext()).registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
- int batLevel = (intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100) /
- intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
+ Intent intent = new ContextWrapper(context.getApplicationContext()).registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+ int batLevel = (intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) * 100) /
+ intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
- process_battery_level(context,batLevel);
+ process_battery_level(context, batLevel);
- return batLevel;
- }
+ return batLevel;
+ }
- public boolean isPowerConnected(Context context){
+ public boolean isPowerConnected(Context context) {
- IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
- Intent batteryStatus = context.registerReceiver(null, ifilter);
+ IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
+ Intent batteryStatus = context.registerReceiver(null, ifilter);
//你可以读到充电状态,如果在充电,可以读到是usb还是交流电
// 是否在充电
- int status = batteryStatus.getIntExtra(EXTRA_STATUS, -1);
- boolean isCharging = (status == BATTERY_STATUS_CHARGING) ;//|| status == BatteryManager.BATTERY_STATUS_FULL;
- boolean isCharging2 = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0;
- ICLogger.d("isCharging = " +isCharging+" isCharging2 "+ isCharging2 );
- return isCharging2;
- }
+ int status = batteryStatus.getIntExtra(EXTRA_STATUS, -1);
+ boolean isCharging = (status == BATTERY_STATUS_CHARGING);//|| status == BatteryManager.BATTERY_STATUS_FULL;
+ boolean isCharging2 = batteryStatus.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) != 0;
+ ICLogger.d("isCharging = " + isCharging + " isCharging2 " + isCharging2);
+ return isCharging2;
+ }
- public void unregisterBroadReceiver() { (this.mRuntime.getContextProxy()).context.unregisterReceiver(this.batteryChangedReceiver); }
+ public void unregisterBroadReceiver() {
+ (this.mRuntime.getContextProxy()).context.unregisterReceiver(this.batteryChangedReceiver);
+ }
}
import android.location.LocationManager;
import android.net.Uri;
import android.net.wifi.WifiManager;
-import android.os.Build;
-import android.os.Environment;
import android.os.Handler;
-import android.os.PowerManager;
+import android.os.HandlerThread;
import android.telephony.TelephonyManager;
-import android.util.Log;
-
import com.enqualcomm.support.Config;
-import com.enqualcomm.support.Constants;
import com.enqualcomm.support.ICContentProvider;
import com.enqualcomm.support.R;
import com.enqualcomm.support.bean.Alarm;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.bean.NoticeContent;
-import com.enqualcomm.support.bean.Silent;
import com.enqualcomm.support.bean.Runtime;
-import com.enqualcomm.support.bean.VoiceContent;
import com.enqualcomm.support.service.AudioService;
-import com.enqualcomm.support.service.Deliver;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Iterator;
-import java.util.concurrent.TimeUnit;
-
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static com.enqualcomm.support.Constants.ACTION_ISCONNECTED;
import static com.enqualcomm.support.Constants.ACTION_KEEPSIT_ALARM;
-import static com.enqualcomm.support.Constants.ACTION_SIT_ALARM;
import static com.enqualcomm.support.Constants.ActionReceivePushTxt;
import static com.enqualcomm.support.Constants.ActionSrvPushTxt;
import static com.enqualcomm.support.Constants.DIALOG_ACTION;
public class ContextProxy {
- private static final long ONE_WEEK = 604800000L;
-
- private final AlarmManager alarmManager;
-
- public Context context;
-
- private final LocationManager locationManager;
-
- private final ContentResolver resolver;
-
- private final SensorManager sensorManager;
-
- private final TelephonyManager telephonyManager;
-
- private final WifiManager wifiManager;
- private static Handler mHandler=new Handler(EventLooperHandlerThread.makeLooper(ContextProxy.class.getSimpleName()));
- public ContextProxy(Context _context) {
- this.context = _context;
- this.resolver = context.getContentResolver();
- this.locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
- this.alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
- this.telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
- this.wifiManager = (WifiManager)context.getSystemService(Context.WIFI_SERVICE);
- this.sensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
-
- }
-
- private PendingIntent getPendingIntent(String paramString1, String paramString2, String paramString3, String name, int paramInt) {
- StringBuilder stringBuilder = new StringBuilder("alarm:");
- stringBuilder.append(paramString1);
- stringBuilder.append(",");
- stringBuilder.append(paramString2);
- stringBuilder.append(",");
- stringBuilder.append(paramString3);
- stringBuilder.append(",");
- stringBuilder.append(name);
- stringBuilder.append(",");
- stringBuilder.append(paramInt);
- Intent intent = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(stringBuilder.toString()));
- return PendingIntent.getActivity(this.context, 0, intent, FLAG_UPDATE_CURRENT);
- }
-
- private PendingIntent getPendingIntent(String noticeTime, String noticeName, String noticeNumber, String noticeID, String noticeCategory, String noticeFrequency, String noticeContent) {
- StringBuilder stringBuilder = new StringBuilder("notice:");
- stringBuilder.append(noticeTime);
- stringBuilder.append(",");
- stringBuilder.append(noticeName);
- stringBuilder.append(",");
- stringBuilder.append(noticeNumber);
- stringBuilder.append(",");
- stringBuilder.append(noticeID);
- stringBuilder.append(",");
- stringBuilder.append(noticeCategory);
- stringBuilder.append(",");
- stringBuilder.append(noticeFrequency);
- stringBuilder.append(",");
- stringBuilder.append(noticeContent);
- Intent intent = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(stringBuilder.toString()));
-
- return PendingIntent.getActivity(this.context, 0, intent, FLAG_UPDATE_CURRENT);
- }
-
- private void initAlarmAndSilent() {
-
- Calendar calendar2 = Calendar.getInstance();
- calendar2.set(Calendar.SECOND, 0);
- long l = System.currentTimeMillis();
- Cursor cursor2 = this.context.getContentResolver().query(ICContentProvider.ALARM_URI, null, null, null, null);
- byte b2 = 3;
- byte b1 = 5;
- char c = '\002';
- if (cursor2 != null) {
- while (cursor2.moveToNext()) {
- try {
- if ("ON".equals(cursor2.getString(4))) {
- String str2 = cursor2.getString(1);
- String str1 = cursor2.getString(c);
- String str3 = cursor2.getString(b2);
- String str4 = cursor2.getString(b1);
- calendar2.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str2.substring(c, 4)));
- calendar2.set(Calendar.MINUTE, Integer.parseInt(str2.substring(b1, 7)));
- char[] arrayOfChar = str1.toCharArray();
- int i = arrayOfChar.length;
- byte b = 1;
- while (b < i) {
- c = (char) (arrayOfChar[b] - '/'); //将ascii数字字符转换为对应的数字
- calendar2.set(Calendar.DAY_OF_WEEK, c);
- long l1 = calendar2.getTimeInMillis();
- if (l1 <= l)
- l1 += ONE_WEEK;
- PendingIntent pendingIntent = getPendingIntent(str2, str1, str3, str4, c);
- AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
- b++;
- c = '\002';
- b1 = 5;
- b2 = 3;
- }
- }
- }catch (Exception e){
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
+ private static final long ONE_WEEK = 604800000L;
+
+ private final AlarmManager alarmManager;
+
+ public Context context;
+
+ private final LocationManager locationManager;
+
+ private final ContentResolver resolver;
+
+ private final SensorManager sensorManager;
+
+ private final TelephonyManager telephonyManager;
+
+ private final WifiManager wifiManager;
+ private static Handler mHandler = null;
+
+ public ContextProxy(Context _context) {
+ if (mHandler == null) {
+ HandlerThread handlerThread = new HandlerThread("ic:context-proxy-handler-thread");
+ handlerThread.start();
+ mHandler = new Handler(handlerThread.getLooper());
}
- }
- cursor2.close();
+ this.context = _context;
+ this.resolver = context.getContentResolver();
+ this.locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
+ this.alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+ this.telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ this.wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+ this.sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
+
+ }
+
+ private PendingIntent getPendingIntent(String paramString1, String paramString2, String paramString3, String name, int paramInt) {
+ StringBuilder stringBuilder = new StringBuilder("alarm:");
+ stringBuilder.append(paramString1);
+ stringBuilder.append(",");
+ stringBuilder.append(paramString2);
+ stringBuilder.append(",");
+ stringBuilder.append(paramString3);
+ stringBuilder.append(",");
+ stringBuilder.append(name);
+ stringBuilder.append(",");
+ stringBuilder.append(paramInt);
+ Intent intent = new Intent("com.enqualcomm.icare.ALARM", Uri.parse(stringBuilder.toString()));
+ return PendingIntent.getActivity(this.context, 0, intent, FLAG_UPDATE_CURRENT);
+ }
+
+ private PendingIntent getPendingIntent(String noticeTime, String noticeName, String noticeNumber, String noticeID, String noticeCategory, String noticeFrequency, String noticeContent) {
+ StringBuilder stringBuilder = new StringBuilder("notice:");
+ stringBuilder.append(noticeTime);
+ stringBuilder.append(",");
+ stringBuilder.append(noticeName);
+ stringBuilder.append(",");
+ stringBuilder.append(noticeNumber);
+ stringBuilder.append(",");
+ stringBuilder.append(noticeID);
+ stringBuilder.append(",");
+ stringBuilder.append(noticeCategory);
+ stringBuilder.append(",");
+ stringBuilder.append(noticeFrequency);
+ stringBuilder.append(",");
+ stringBuilder.append(noticeContent);
+ Intent intent = new Intent("com.enqualcomm.icare.NOTICE", Uri.parse(stringBuilder.toString()));
+
+ return PendingIntent.getActivity(this.context, 0, intent, FLAG_UPDATE_CURRENT);
}
- Calendar calendar1 = Calendar.getInstance();
- calendar1.set(Calendar.SECOND, 0);
- Cursor cursor1 = this.context.getContentResolver().query(ICContentProvider.NOTICE_URL, null, null, null, null);
- if (cursor1 != null) {
- while (cursor1.moveToNext()) {
- try {
- String str1 = cursor1.getString(1);
- String str2 = cursor1.getString(2);
- String str3 = cursor1.getString(3);
- String str4 = cursor1.getString(4);
- String str5 = cursor1.getString(5);
- String str6 = cursor1.getString(6);
- String str7 = cursor1.getString(6);
- if (str1 != null) {
- String year = str1.substring(0, 4);
- String month = str1.substring(4, 6);
- String day = str1.substring(6, 8);
- String hour = str1.substring(8, 10);
- String minute = str1.substring(10, 12);
- calendar1.set(Calendar.YEAR, Integer.parseInt(year));
- calendar1.set(Calendar.MONTH, Integer.parseInt(month));
- calendar1.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day));
- calendar1.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hour));
- calendar1.set(Calendar.MINUTE, Integer.parseInt(minute));
- long l1 = calendar1.getTimeInMillis();
- if (l1 > l) {
- PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);
- AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
+
+ private void initAlarmAndSilent() {
+
+ Calendar calendar2 = Calendar.getInstance();
+ calendar2.set(Calendar.SECOND, 0);
+ long l = System.currentTimeMillis();
+ Cursor cursor2 = this.context.getContentResolver().query(ICContentProvider.ALARM_URI, null, null, null, null);
+ byte b2 = 3;
+ byte b1 = 5;
+ char c = '\002';
+ if (cursor2 != null) {
+ while (cursor2.moveToNext()) {
+ try {
+ if ("ON".equals(cursor2.getString(4))) {
+ String str2 = cursor2.getString(1);
+ String str1 = cursor2.getString(c);
+ String str3 = cursor2.getString(b2);
+ String str4 = cursor2.getString(b1);
+ calendar2.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str2.substring(c, 4)));
+ calendar2.set(Calendar.MINUTE, Integer.parseInt(str2.substring(b1, 7)));
+ char[] arrayOfChar = str1.toCharArray();
+ int i = arrayOfChar.length;
+ byte b = 1;
+ while (b < i) {
+ c = (char) (arrayOfChar[b] - '/'); //将ascii数字字符转换为对应的数字
+ calendar2.set(Calendar.DAY_OF_WEEK, c);
+ long l1 = calendar2.getTimeInMillis();
+ if (l1 <= l)
+ l1 += ONE_WEEK;
+ PendingIntent pendingIntent = getPendingIntent(str2, str1, str3, str4, c);
+ AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
+ b++;
+ c = '\002';
+ b1 = 5;
+ b2 = 3;
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
+ }
+ cursor2.close();
+ }
+ Calendar calendar1 = Calendar.getInstance();
+ calendar1.set(Calendar.SECOND, 0);
+ Cursor cursor1 = this.context.getContentResolver().query(ICContentProvider.NOTICE_URL, null, null, null, null);
+ if (cursor1 != null) {
+ while (cursor1.moveToNext()) {
+ try {
+ String str1 = cursor1.getString(1);
+ String str2 = cursor1.getString(2);
+ String str3 = cursor1.getString(3);
+ String str4 = cursor1.getString(4);
+ String str5 = cursor1.getString(5);
+ String str6 = cursor1.getString(6);
+ String str7 = cursor1.getString(6);
+ if (str1 != null) {
+ String year = str1.substring(0, 4);
+ String month = str1.substring(4, 6);
+ String day = str1.substring(6, 8);
+ String hour = str1.substring(8, 10);
+ String minute = str1.substring(10, 12);
+ calendar1.set(Calendar.YEAR, Integer.parseInt(year));
+ calendar1.set(Calendar.MONTH, Integer.parseInt(month));
+ calendar1.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day));
+ calendar1.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hour));
+ calendar1.set(Calendar.MINUTE, Integer.parseInt(minute));
+ long l1 = calendar1.getTimeInMillis();
+ if (l1 > l) {
+ PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);
+ AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
}
- }
- }catch (Exception e){
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
+ cursor1.close();
}
- }
- cursor1.close();
}
- }
-
- public LocationManager getLocationManager() { return this.locationManager; }
-
- public ContentResolver getResolver() { return this.resolver; }
-
- public SensorManager getSensorManager() { return this.sensorManager; }
-
- public TelephonyManager getTelephonyManager() { return this.telephonyManager; }
-
- public WifiManager getWifiManager() { return this.wifiManager; }
-
-
- public void resolverAlarm(ArrayList<Alarm> paramArrayList) {
- Cursor cursor = this.context.getContentResolver().query(ICContentProvider.ALARM_URI, null, null, null, null);
- char c = '\001';
- if (cursor != null) {
- while (cursor.moveToNext()) {
- if ("ON".equals(cursor.getString(4))) {
- String str1 = cursor.getString(c);
- String str2 = cursor.getString(2);
- String str3 = cursor.getString(3);
- String str4 = cursor.getString(5);
- char[] arrayOfChar = str2.toCharArray();
- int i = arrayOfChar.length;
- byte b = 1;
- while (b < i) {
- c = arrayOfChar[b];
- this.alarmManager.cancel(getPendingIntent(str1, str2, str3, str4, c - '/'));
- b++;
- c = '\001';
- }
+
+ public LocationManager getLocationManager() {
+ return this.locationManager;
+ }
+
+ public ContentResolver getResolver() {
+ return this.resolver;
+ }
+
+ public SensorManager getSensorManager() {
+ return this.sensorManager;
+ }
+
+ public TelephonyManager getTelephonyManager() {
+ return this.telephonyManager;
+ }
+
+ public WifiManager getWifiManager() {
+ return this.wifiManager;
+ }
+
+
+ public void resolverAlarm(ArrayList<Alarm> paramArrayList) {
+ Cursor cursor = this.context.getContentResolver().query(ICContentProvider.ALARM_URI, null, null, null, null);
+ char c = '\001';
+ if (cursor != null) {
+ while (cursor.moveToNext()) {
+ if ("ON".equals(cursor.getString(4))) {
+ String str1 = cursor.getString(c);
+ String str2 = cursor.getString(2);
+ String str3 = cursor.getString(3);
+ String str4 = cursor.getString(5);
+ char[] arrayOfChar = str2.toCharArray();
+ int i = arrayOfChar.length;
+ byte b = 1;
+ while (b < i) {
+ c = arrayOfChar[b];
+ this.alarmManager.cancel(getPendingIntent(str1, str2, str3, str4, c - '/'));
+ b++;
+ c = '\001';
+ }
+ }
+ }
+ cursor.close();
+ }
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.SECOND, 0);
+ long l = System.currentTimeMillis();
+ for (Alarm alarm : paramArrayList) {
+ long l1 = l;
+
+ if ("ON".equals(alarm.status)) {
+ try {
+ int i = Integer.parseInt(alarm.time.substring(2, 4));
+ int j = Integer.parseInt(alarm.time.substring(5, 7));
+ calendar.set(Calendar.HOUR_OF_DAY, i);
+ calendar.set(Calendar.MINUTE, j);
+ char[] arrayOfChar = alarm.week.toCharArray();
+ i = arrayOfChar.length;
+ j = 1;
+ while (true) {
+ l1 = l;
+ if (j < i) {
+ c = (char) (arrayOfChar[j] - '/');
+ calendar.set(Calendar.DAY_OF_WEEK, c);
+ long l2 = calendar.getTimeInMillis();
+ l1 = l2;
+ if (l2 <= l)
+ l1 = l2 + ONE_WEEK;
+ PendingIntent pendingIntent = getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, c);
+ AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
+ j++;
+ continue;
+ }
+ break;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
+ }
+ l = l1;
}
- }
- cursor.close();
}
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.SECOND, 0);
- long l = System.currentTimeMillis();
- for (Alarm alarm : paramArrayList) {
- long l1 = l;
-
- if ("ON".equals(alarm.status)) {
- try {
- int i = Integer.parseInt(alarm.time.substring(2, 4));
- int j = Integer.parseInt(alarm.time.substring(5, 7));
- calendar.set(Calendar.HOUR_OF_DAY, i);
- calendar.set(Calendar.MINUTE, j);
- char[] arrayOfChar = alarm.week.toCharArray();
- i = arrayOfChar.length;
- j = 1;
- while (true) {
- l1 = l;
- if (j < i) {
- c = (char) (arrayOfChar[j] - '/');
- calendar.set(Calendar.DAY_OF_WEEK, c);
- long l2 = calendar.getTimeInMillis();
- l1 = l2;
- if (l2 <= l)
- l1 = l2 + ONE_WEEK;
- PendingIntent pendingIntent = getPendingIntent(alarm.time, alarm.week, alarm.ring, alarm.name, c);
- AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
- j++;
- continue;
+
+ public void resolverNotice(ArrayList<NoticeContent> paramArrayList) {
+ Cursor cursor = this.context.getContentResolver().query(ICContentProvider.NOTICE_URL, null, null, null, null);
+ if (cursor != null) {
+ while (cursor.moveToNext()) {
+ String str1 = cursor.getString(1);
+ String str2 = cursor.getString(2);
+ String str3 = cursor.getString(3);
+ String str4 = cursor.getString(4);
+ String str5 = cursor.getString(5);
+ String str6 = cursor.getString(6);
+ String str7 = cursor.getString(6);
+ this.alarmManager.cancel(getPendingIntent(str1, str2, str3, str4, str5, str6, str7));
+ }
+ cursor.close();
+ }
+ for (NoticeContent noticeContent : paramArrayList) {
+ String str1 = noticeContent.noticeTime;
+ String str2 = noticeContent.noticeName;
+ String str3 = noticeContent.noticeNumber;
+ String str4 = noticeContent.noticeID;
+ String str5 = noticeContent.noticeCategory;
+ String str6 = noticeContent.noticeFrequency;
+ String str7 = noticeContent.noticeContent;
+ Calendar calendar = Calendar.getInstance();
+ long l = System.currentTimeMillis();
+ calendar.set(Calendar.SECOND, 0);
+ if (str1 != null) {
+ try {
+ String str8 = str1.substring(0, 4);
+ String str9 = str1.substring(4, 6);
+ String str10 = str1.substring(6, 8);
+ String str11 = str1.substring(8, 10);
+ String str12 = str1.substring(10, 12);
+ calendar.set(Calendar.YEAR, Integer.parseInt(str8));
+ calendar.set(Calendar.MONTH, Integer.parseInt(str9) - 1);
+ calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(str10));
+ calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str11));
+ calendar.set(Calendar.MINUTE, Integer.parseInt(str12));
+ long l1 = calendar.getTimeInMillis();
+ if (l1 >= l) {
+ PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);
+ AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
}
- break;
- }
- }catch (Exception e){
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
}
- }
- l = l1;
}
- }
-
- public void resolverNotice(ArrayList<NoticeContent> paramArrayList) {
- Cursor cursor = this.context.getContentResolver().query(ICContentProvider.NOTICE_URL, null, null, null, null);
- if (cursor != null) {
- while (cursor.moveToNext()) {
- String str1 = cursor.getString(1);
- String str2 = cursor.getString(2);
- String str3 = cursor.getString(3);
- String str4 = cursor.getString(4);
- String str5 = cursor.getString(5);
- String str6 = cursor.getString(6);
- String str7 = cursor.getString(6);
- this.alarmManager.cancel(getPendingIntent(str1, str2, str3, str4, str5, str6, str7));
- }
- cursor.close();
+
+ private static final String PED_TOTAL_KEY = "PED_TOTAL";
+ private static final String PED_FINISH_ACTION = "com.ic.action.PED_FINISH";
+
+ public void brodcastResetStepCount(int StepCount) {
+ Intent intent = new Intent();
+ intent.putExtra(PED_TOTAL_KEY, StepCount);
+ intent.setAction(PED_FINISH_ACTION);
+ ICLogger.i("send broadcast action " + PED_FINISH_ACTION + ", key " + PED_TOTAL_KEY + " value " + StepCount);
+ this.context.sendBroadcast(intent);
}
- for (NoticeContent noticeContent : paramArrayList) {
- String str1 = noticeContent.noticeTime;
- String str2 = noticeContent.noticeName;
- String str3 = noticeContent.noticeNumber;
- String str4 = noticeContent.noticeID;
- String str5 = noticeContent.noticeCategory;
- String str6 = noticeContent.noticeFrequency;
- String str7 = noticeContent.noticeContent;
- Calendar calendar = Calendar.getInstance();
- long l = System.currentTimeMillis();
- calendar.set(Calendar.SECOND, 0);
- if (str1 != null) {
- try {
- String str8 = str1.substring(0, 4);
- String str9 = str1.substring(4, 6);
- String str10 = str1.substring(6, 8);
- String str11 = str1.substring(8, 10);
- String str12 = str1.substring(10, 12);
- calendar.set(Calendar.YEAR, Integer.parseInt(str8));
- calendar.set(Calendar.MONTH, Integer.parseInt(str9) - 1);
- calendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt(str10));
- calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(str11));
- calendar.set(Calendar.MINUTE, Integer.parseInt(str12));
- long l1 = calendar.getTimeInMillis();
- if (l1 >= l) {
- PendingIntent pendingIntent = getPendingIntent(str1, str2, str3, str4, str5, str6, str7);
- AlarmHelper.setAlarm(this.alarmManager, l1, pendingIntent);
- }
- }catch (Exception e){
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
- }
- }
+
+ public void sendBrodcast(String action, Intent intent) {
+ intent.setAction(action);
+ ICLogger.i("send broadcast action " + action);
+ this.context.sendBroadcast(intent);
+ }
+
+ public void sendBroadcast(String cmd, Runtime dev) {
+ Intent intent = new Intent();
+ intent.putExtra("longitude", dev.getLocationInstance().getLocation().lon);
+ intent.putExtra("latitude", dev.getLocationInstance().getLocation().lat);
+ intent.setAction(cmd);
+ this.context.sendBroadcast(intent);
}
- }
- private static final String PED_TOTAL_KEY = "PED_TOTAL";
- private static final String PED_FINISH_ACTION = "com.ic.action.PED_FINISH";
- public void brodcastResetStepCount(int StepCount){
- Intent intent = new Intent();
- intent.putExtra(PED_TOTAL_KEY, StepCount);
- intent.setAction(PED_FINISH_ACTION);
- ICLogger.i("send broadcast action "+PED_FINISH_ACTION+", key "+PED_TOTAL_KEY+" value "+StepCount);
- this.context.sendBroadcast(intent);
- }
- public void sendBrodcast(String action,Intent intent){
- intent.setAction(action);
- ICLogger.i("send broadcast action "+action);
- this.context.sendBroadcast(intent);
- }
-
- public void sendBroadcast(String cmd, Runtime dev) {
- Intent intent = new Intent();
- intent.putExtra("longitude", dev.getLocationInstance().getLocation().lon);
- intent.putExtra("latitude", dev.getLocationInstance().getLocation().lat);
- intent.setAction(cmd);
- this.context.sendBroadcast(intent);
- }
// public void sendBroadcastVoiceReceived(String cmd, VoiceContent vcontent) {
// Intent intent = new Intent();
// this.context.sendBroadcast(intent);
// }
- public void sendBroadcastServerConnectionChanged(boolean paramBoolean) {
- Intent intent = new Intent();
- intent.setAction(ACTION_ISCONNECTED);
- intent.putExtra("isConnected", paramBoolean);
- Util.setSystemProperties("persist.sys.server_connected",paramBoolean?"true":"false");
- this.context.sendBroadcast(intent);
- }
-
- public void saveMstToSMSDB(String msg){
- Intent intent = new Intent();
- intent.setAction(ActionReceivePushTxt);
- intent.putExtra("txtMsg", msg);
- intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
- this.context.sendBroadcast(intent);
- }
- public void sendMsgBroadcast(String msg, int msgType) {
- sendMsgBroadcast(this.context,msg,msgType);
- }
- private static void play_waning_notify(Context context){
- AudioService.getInstance().play(context.getAssets(), "warning.mp3");
- }
- public static void sendMsgBroadcast(Context _context,String msg, int msgType) {
-
- if (msgType==0) {
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- //本应用弹出消息框
- if (Config.noPushTxtNotifyDialog == false) {
- Intent intent = new Intent();
- intent.setAction(DIALOG_ACTION);
- intent.putExtra("pushtxt", msg);
- _context.sendBroadcast(intent);
- } else {
- WakeLockUtil.ScreenOnWakeLockTemperary(_context);
- play_waning_notify(_context);
- VibrateUtil.getInstance(_context).VibrateOnOnce(true);
- Util.mSleep(2000);
- }
- //launcher 弹出消息
- if(Config.noBroadCastPushTxtNotify==false) {
- Intent intent = new Intent(ActionSrvPushTxt);
- intent.putExtra("msgType", msgType); //0 代表 server下发消息,1代表 SMS消息
- intent.putExtra("txtMsg", msg);
- intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
- _context.sendBroadcast(intent);
- }
- }
- },50);
-
- }else if (msgType==2) {
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- //本应用弹出消息框
- if (Config.noPushTxtNotifyDialog == false) {
- Intent intent = new Intent();
- intent.setAction(DIALOG_ACTION);
- intent.putExtra("pushtxt", msg);
- _context.sendBroadcast(intent);
- } else {
- WakeLockUtil.ScreenOnWakeLockTemperary(_context);
- play_waning_notify(_context);
- VibrateUtil.getInstance(_context).VibrateOnOnce(true);
- Util.mSleep(2000);
- }
- //launcher 弹出消息
- if (Config.noBroadCastPushTxtNotify == false) {
- Intent intent = new Intent(ActionSrvPushTxt);
- intent.putExtra("msgType", msgType); //0 代表 server下发消息,1代表 SMS消息,2代表有提示音的消息
- intent.putExtra("txtMsg", msg);
- intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
- _context.sendBroadcast(intent);
- }
- }
- }, 50);
+ public void sendBroadcastServerConnectionChanged(boolean paramBoolean) {
+ Intent intent = new Intent();
+ intent.setAction(ACTION_ISCONNECTED);
+ intent.putExtra("isConnected", paramBoolean);
+ Util.setSystemProperties("persist.sys.server_connected", paramBoolean ? "true" : "false");
+ this.context.sendBroadcast(intent);
+ }
- }else if (msgType==3){ //专门给需要回复的消息
+ public void saveMstToSMSDB(String msg) {
+ Intent intent = new Intent();
+ intent.setAction(ActionReceivePushTxt);
+ intent.putExtra("txtMsg", msg);
+ intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
+ this.context.sendBroadcast(intent);
+ }
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- //本应用弹出消息框
- if (Config.noPushTxtNotifyDialog == false) {
- Intent intent = new Intent();
- intent.setAction(DIALOG_ACTION);
- intent.putExtra("pushtxt", msg);
- intent.putExtra("needreply",true);
- _context.sendBroadcast(intent);
- } else {
- WakeLockUtil.ScreenOnWakeLockTemperary(_context);
- play_waning_notify(_context);
- VibrateUtil.getInstance(_context).VibrateOnOnce(true);
- Util.mSleep(2000);
- }
+ public void sendMsgBroadcast(String msg, int msgType) {
+ sendMsgBroadcast(this.context, msg, msgType);
+ }
- }
- },50);
- }else{
-
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- //本应用弹出消息框
- if(Config.noSMSNotifyDialog==false) {
- Intent intent = new Intent();
- intent.setAction(DIALOG_ACTION);
- intent.putExtra("sms", msg);
- _context.sendBroadcast(intent);
- }else{
- WakeLockUtil.ScreenOnWakeLockTemperary(_context);
- play_waning_notify(_context);
- VibrateUtil.getInstance(_context).VibrateOnOnce(true);
- Util.mSleep(2000);
- }
- //launcher 弹出消息
- if(Config.noBroadCastPushTxtNotify==false) {
- Intent intent = new Intent(ActionSrvPushTxt);
- intent.putExtra("msgType", msgType); //0 代表 server下发消息,1代表 SMS消息,2代表有提示音的消息
- intent.putExtra("txtMsg", msg);
- intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
- _context.sendBroadcast(intent);
- }
- }
- },50);
+ private static void play_waning_notify(Context context) {
+ AudioService.getInstance().play(context.getAssets(), "warning.mp3");
}
+ public static void sendMsgBroadcast(Context _context, String msg, int msgType) {
+
+ if (msgType == 0) {
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ //本应用弹出消息框
+ if (Config.noPushTxtNotifyDialog == false) {
+ Intent intent = new Intent();
+ intent.setAction(DIALOG_ACTION);
+ intent.putExtra("pushtxt", msg);
+ _context.sendBroadcast(intent);
+ } else {
+ WakeLockUtil.ScreenOnWakeLockTemperary(_context);
+ play_waning_notify(_context);
+ VibrateUtil.getInstance(_context).VibrateOnOnce(true);
+ Util.mSleep(2000);
+ }
+ //launcher 弹出消息
+ if (Config.noBroadCastPushTxtNotify == false) {
+ Intent intent = new Intent(ActionSrvPushTxt);
+ intent.putExtra("msgType", msgType); //0 代表 server下发消息,1代表 SMS消息
+ intent.putExtra("txtMsg", msg);
+ intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
+ _context.sendBroadcast(intent);
+ }
+ }
+ }, 50);
+
+ } else if (msgType == 2) {
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ //本应用弹出消息框
+ if (Config.noPushTxtNotifyDialog == false) {
+ Intent intent = new Intent();
+ intent.setAction(DIALOG_ACTION);
+ intent.putExtra("pushtxt", msg);
+ _context.sendBroadcast(intent);
+ } else {
+ WakeLockUtil.ScreenOnWakeLockTemperary(_context);
+ play_waning_notify(_context);
+ VibrateUtil.getInstance(_context).VibrateOnOnce(true);
+ Util.mSleep(2000);
+ }
+ //launcher 弹出消息
+ if (Config.noBroadCastPushTxtNotify == false) {
+ Intent intent = new Intent(ActionSrvPushTxt);
+ intent.putExtra("msgType", msgType); //0 代表 server下发消息,1代表 SMS消息,2代表有提示音的消息
+ intent.putExtra("txtMsg", msg);
+ intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
+ _context.sendBroadcast(intent);
+ }
+ }
+ }, 50);
+
+ } else if (msgType == 3) { //专门给需要回复的消息
+
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ //本应用弹出消息框
+ if (Config.noPushTxtNotifyDialog == false) {
+ Intent intent = new Intent();
+ intent.setAction(DIALOG_ACTION);
+ intent.putExtra("pushtxt", msg);
+ intent.putExtra("needreply", true);
+ _context.sendBroadcast(intent);
+ } else {
+ WakeLockUtil.ScreenOnWakeLockTemperary(_context);
+ play_waning_notify(_context);
+ VibrateUtil.getInstance(_context).VibrateOnOnce(true);
+ Util.mSleep(2000);
+ }
+
+ }
+ }, 50);
+ } else {
+
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ //本应用弹出消息框
+ if (Config.noSMSNotifyDialog == false) {
+ Intent intent = new Intent();
+ intent.setAction(DIALOG_ACTION);
+ intent.putExtra("sms", msg);
+ _context.sendBroadcast(intent);
+ } else {
+ WakeLockUtil.ScreenOnWakeLockTemperary(_context);
+ play_waning_notify(_context);
+ VibrateUtil.getInstance(_context).VibrateOnOnce(true);
+ Util.mSleep(2000);
+ }
+ //launcher 弹出消息
+ if (Config.noBroadCastPushTxtNotify == false) {
+ Intent intent = new Intent(ActionSrvPushTxt);
+ intent.putExtra("msgType", msgType); //0 代表 server下发消息,1代表 SMS消息,2代表有提示音的消息
+ intent.putExtra("txtMsg", msg);
+ intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
+ _context.sendBroadcast(intent);
+ }
+ }
+ }, 50);
+ }
+
+ }
+
+ public void sendStheartRateBroadcast(String paramString, int paramInt) {
+ Intent intent = new Intent();
+ intent.setAction(paramString);
+ intent.putExtra("stheartRateType", paramInt);
+ this.context.sendBroadcast(intent, "com.eqc.broadcast.permission");
+ }
+ public void sendBroadcastSitLongAlarm() {
- }
- public void sendStheartRateBroadcast(String paramString, int paramInt) {
- Intent intent = new Intent();
- intent.setAction(paramString);
- intent.putExtra("stheartRateType", paramInt);
- this.context.sendBroadcast(intent, "com.eqc.broadcast.permission");
- }
- public void sendBroadcastSitLongAlarm() {
-
- if (Util.installed(context,"com.ic.ak.launcher")) {
- Intent intent = new Intent();
- intent.setAction(ACTION_KEEPSIT_ALARM);
- intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
- this.context.sendBroadcast(intent);
- }else {
- Intent intent = new Intent();
- //显示提示窗口
- intent.setAction(DIALOG_ACTION);
- intent.putExtra("takephoto", context.getResources().getString(R.string.sedentary_msg));
- context.sendBroadcast(intent);
+ if (Util.installed(context, "com.ic.ak.launcher")) {
+ Intent intent = new Intent();
+ intent.setAction(ACTION_KEEPSIT_ALARM);
+ intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
+ this.context.sendBroadcast(intent);
+ } else {
+ Intent intent = new Intent();
+ //显示提示窗口
+ intent.setAction(DIALOG_ACTION);
+ intent.putExtra("takephoto", context.getResources().getString(R.string.sedentary_msg));
+ context.sendBroadcast(intent);
+ }
}
- }
}
package com.enqualcomm.support.utils;
-import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
-import android.content.ContentProviderOperation.Builder;
import android.database.Cursor;
import android.net.Uri;
import android.os.Handler;
+import android.os.HandlerThread;
import android.os.SystemClock;
-import android.provider.BaseColumns;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
-import android.text.TextUtils;
import com.enqualcomm.support.Config;
import com.enqualcomm.support.ICContentProvider;
import com.enqualcomm.support.bean.Contact;
import com.enqualcomm.support.bean.Content;
import com.enqualcomm.support.bean.DeviceStatus;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.bean.NoticeContent;
import com.enqualcomm.support.bean.NotificationParam;
import com.enqualcomm.support.bean.Silent;
import java.util.ArrayList;
import java.util.Iterator;
+import rx.Observable;
+import rx.Subscriber;
+import rx.schedulers.Schedulers;
+
import static com.enqualcomm.support.Constants.ACTION_ALARM_ALARM_CHANGE;
import static com.enqualcomm.support.Constants.ACTION_ANTIOFF_ALARM_CHANGE;
import static com.enqualcomm.support.bean.Contact.CATEGORY_ADMIN;
import static com.enqualcomm.support.bean.Contact.CATEGORY_VIDEO;
public class DBHelper {
- private static long lastUpdateTime;
- private Context context;
- private ContentResolver cr;
- private Handler mHandler;//=new Handler(EventLooperHandlerThread.makeLooper(DBHelper.class.getSimpleName()));
-// private Handler mHandler=new Handler();
- public DBHelper(ContentResolver var1, Context var2) {
- this.cr = var1;
- this.context = var2;
- EventLooperHandlerThread eventLooperHandlerThread=new EventLooperHandlerThread(DBHelper.class.getSimpleName());
- eventLooperHandlerThread.start();
- mHandler=new Handler( eventLooperHandlerThread.looper);
- }
-
- private void addAllContact(ArrayList<Contact> contactArray, ContentResolver resolver) {
- Iterator contactIT = contactArray.iterator();
-
- while(contactIT.hasNext()) {
- Contact contact = (Contact)contactIT.next();
- ContentValues contentvalues = new ContentValues();
- long raw_contactID = ContentUris.parseId(resolver.insert(RawContacts.CONTENT_URI, contentvalues));
-
- contentvalues.clear();
- contentvalues.put("raw_contact_id", raw_contactID);
- contentvalues.put("mimetype", "vnd.android.cursor.item/name");
- contentvalues.put("data2", contact.name);
- resolver.insert(Data.CONTENT_URI, contentvalues);
- contentvalues.clear();
-
- contentvalues.put("raw_contact_id", raw_contactID);
- contentvalues.put("mimetype", "vnd.android.cursor.item/phone_v2");
- contentvalues.put("data1", contact.number);
- contentvalues.put("data2", 2);
- resolver.insert(Data.CONTENT_URI, contentvalues);
- contentvalues.clear();
+ private static long lastUpdateTime;
+ private Context context;
+ private ContentResolver cr;
+ private Handler mHandler;//=new Handler(EventLooperHandlerThread.makeLooper(DBHelper.class.getSimpleName()));
+
+ // private Handler mHandler=new Handler();
+ public DBHelper(ContentResolver var1, Context var2) {
+ this.cr = var1;
+ this.context = var2;
+ HandlerThread handlerThread = new HandlerThread("ic:db-handler-thread");
+ handlerThread.start();
+ mHandler = new Handler(handlerThread.getLooper());
}
- }
+ /**
+ * 添加联系人
+ *
+ * @param contactArray
+ * @param resolver
+ */
+ private void addAllContact(ArrayList<Contact> contactArray, ContentResolver resolver) {
+ Observable.create(subscriber -> {
+ Iterator contactIT = contactArray.iterator();
+ while (contactIT.hasNext()) {
+ Contact contact = (Contact) contactIT.next();
+ ContentValues contentvalues = new ContentValues();
+ long raw_contactID = ContentUris.parseId(resolver.insert(RawContacts.CONTENT_URI, contentvalues));
+ contentvalues.clear();
+ contentvalues.put("raw_contact_id", raw_contactID);
+ contentvalues.put("mimetype", "vnd.android.cursor.item/name");
+ contentvalues.put("data2", contact.name);
+ resolver.insert(Data.CONTENT_URI, contentvalues);
+ contentvalues.clear();
+ contentvalues.put("raw_contact_id", raw_contactID);
+ contentvalues.put("mimetype", "vnd.android.cursor.item/phone_v2");
+ contentvalues.put("data1", contact.number);
+ contentvalues.put("data2", 2);
+ resolver.insert(Data.CONTENT_URI, contentvalues);
+ contentvalues.clear();
+ }
+ }).subscribeOn(Schedulers.io()).subscribe();
+ }
- public int getContactCount(ContentResolver resolver)
- {
- StringBuilder sb = new StringBuilder();
+ /**
+ * 获取联系人个数
+ *
+ * @param resolver
+ * @return
+ */
+ public int getContactCount(ContentResolver resolver) {
+ try {
+ //这个要做到同步返回,没法用异步
+ //如果要用异步的方式则要通过回调来实现
+ Cursor cursor = resolver.query(ICContentProvider.CONTACT_URI, (String[]) null, null, (String[]) null, "CATEGORY ASC");
+ return cursor.getCount();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return 0;
+ }
- Cursor cursor = resolver.query(ICContentProvider.CONTACT_URI, (String[])null, null, (String[])null, "CATEGORY ASC");
+ /**
+ * 删除所有的联系人
+ *
+ * @param contactArrayList
+ * @param where
+ * @param resolver
+ */
+ private void deleteAllContact(ArrayList<Contact> contactArrayList, String where, ContentResolver resolver) {
+ Observable.create(subscriber -> {
+ String sb = "where=" + where;
+ ICLogger.i(sb);
+ for (Contact contact : contactArrayList) {
+ deleteContactId(resolver, contact.name);
+ }
+ resolver.delete(ICContentProvider.CONTACT_URI, where, null);
+ }).subscribeOn(Schedulers.io()).subscribe();
+ }
- return cursor.getCount();
+ private Uri insertDownLoadInfo(String var1, int var2, int var3, String var4) {
+ ContentValues var5 = new ContentValues();
+ var5.put("IMSI", var1);
+ var5.put("TIME", var4);
+ var5.put("NUMBER", var2);
+ var5.put("TOTAL_NUMBER", var3);
+ return this.cr.insert(ICContentProvider.DOWNLOADINFO_URL, var5);
+ }
- }
- private void deleteAllContact(ArrayList<Contact> contactArraylist, String where, ContentResolver resolver) {
- StringBuilder sb = new StringBuilder();
- sb.append("where=");
- sb.append(where);
- ICLogger.i(sb.toString());
- Cursor cursor = resolver.query(ICContentProvider.CONTACT_URI, (String[])null, where, (String[])null, "CATEGORY ASC");
+ private void saveContactsImpl(ArrayList<Contact> contactArray,
+ boolean admin, boolean care,
+ boolean call, boolean partner,
+ boolean video, boolean sos) {
+ StringBuilder log = new StringBuilder();
+ log.append("saveContactsImpl contactList = ");
+ log.append(contactArray.toString());
+ ICLogger.i(log.toString());
+ StringBuilder where = new StringBuilder("CATEGORY IN (");
+ if (admin) {
+ where.append(CATEGORY_ADMIN);
+ where.append(",");
+ }
- Iterator contactIT = contactArraylist.iterator();
+ if (care) {
+ where.append(CATEGORY_CARE);
+ where.append(",");
+ }
- while(contactIT.hasNext()) {
- this.DeleteContactId(resolver, ((Contact)contactIT.next()).name);
- }
- resolver.delete(ICContentProvider.CONTACT_URI, where, (String[])null);
- }
-
- private Uri insertDownLoadInfo(String var1, int var2, int var3, String var4) {
- ContentValues var5 = new ContentValues();
- var5.put("IMSI", var1);
- var5.put("TIME", var4);
- var5.put("NUMBER", var2);
- var5.put("TOTAL_NUMBER", var3);
- return this.cr.insert(ICContentProvider.DOWNLOADINFO_URL, var5);
- }
-
- private void saveContactsImpl(ArrayList<Contact> contactArray, boolean admin, boolean care, boolean call, boolean partner, boolean video,boolean sos) {
- StringBuilder log = new StringBuilder();
- log.append("saveContactsImpl contactList = ");
- log.append(contactArray.toString());
- ICLogger.i(log.toString());
- StringBuilder where = new StringBuilder("CATEGORY IN (");
- if (admin) {
- where.append(CATEGORY_ADMIN);
- where.append(",");
- }
+ if (call) {
+ where.append(CATEGORY_CALL);
+ where.append(",");
+ }
- if (care) {
- where.append(CATEGORY_CARE);
- where.append(",");
- }
+ if (partner) {
+ where.append(CATEGORY_PARTNER);
+ where.append(",");
+ }
- if (call) {
- where.append(CATEGORY_CALL);
- where.append(",");
- }
+ if (video) {
+ where.append(CATEGORY_VIDEO);
+ where.append(",");
+ }
- if (partner) {
- where.append(CATEGORY_PARTNER);
- where.append(",");
- }
+ if (sos) {
+ where.append(CATEGORY_SOS);
+ where.append(",");
+ }
+ int len = where.length();
+ if (len > 13) {
+ where.setCharAt(len - 1, ')');
+ this.deleteAllContact(contactArray, where.toString(), this.cr);
+ int contactCount = contactArray.size();
+ if (contactCount != 0) {
+ ContentValues[] contentlist = new ContentValues[contactCount];
+
+ for (int i = 0; i < contactCount; ++i) {
+ Contact contact = (Contact) contactArray.get(i);
+ ContentValues contentValues = new ContentValues();
+ contentlist[i] = contentValues;
+ contentValues.put("CATEGORY", contact.category);
+ contentValues.put("NAME", contact.name);
+ contentValues.put("NUMBER", contact.number);
+ contentValues.put("ICON", contact.icon_index);
+ contentValues.put("EXTRA", contact.extra);
+ StringBuilder log1 = new StringBuilder();
+ log1.append("contact=");
+ log1.append(contact.toString());
+ ICLogger.i(log1.toString());
+ }
+
+ this.cr.bulkInsert(ICContentProvider.CONTACT_URI, contentlist);
+ this.addAllContact(contactArray, this.cr);
+ }
- if (video) {
- where.append(CATEGORY_VIDEO);
- where.append(",");
+ }
}
- if (sos) {
- where.append(CATEGORY_SOS);
- where.append(",");
- }
- int len = where.length();
- if (len > 13) {
- where.setCharAt(len - 1, ')');
- this.deleteAllContact(contactArray, where.toString(), this.cr);
- int contactCount = contactArray.size();
- if (contactCount != 0) {
- ContentValues[] contentlist = new ContentValues[contactCount];
-
- for(int i = 0; i < contactCount; ++i) {
- Contact contact = (Contact)contactArray.get(i);
- ContentValues contentValues = new ContentValues();
- contentlist[i] = contentValues;
- contentValues.put("CATEGORY", contact.category);
- contentValues.put("NAME", contact.name);
- contentValues.put("NUMBER", contact.number);
- contentValues.put("ICON", contact.icon_index);
- contentValues.put("EXTRA", contact.extra);
- StringBuilder log1 = new StringBuilder();
- log1.append("contact=");
- log1.append(contact.toString());
- ICLogger.i(log1.toString());
+ private void upDateMonitorImpl(String var1, String var2) {
+ Cursor var5 = this.cr.query(ICContentProvider.DEVICESTATUS_URL, (String[]) null, (String) null, (String[]) null, (String) null);
+ ArrayList var4 = new ArrayList();
+ if (var5 != null) {
+ while (true) {
+ if (!var5.moveToNext()) {
+ var5.close();
+ break;
+ }
+
+ var4.add(new DeviceStatus(var5.getString(1), "0", "0", var5.getInt(4)));
+ }
}
- this.cr.bulkInsert(ICContentProvider.CONTACT_URI, contentlist);
- this.addAllContact(contactArray, this.cr);
- }
+ this.cr.delete(ICContentProvider.DEVICESTATUS_URL, (String) null, (String[]) null);
+ if (var4.size() != 0) {
+ ContentValues[] var8 = new ContentValues[var4.size()];
+
+ for (int var3 = 0; var3 < var4.size(); ++var3) {
+ DeviceStatus var6 = (DeviceStatus) var4.get(var3);
+ ContentValues var7 = new ContentValues();
+ var8[var3] = var7;
+ var7.put("IS_SILENCE", var6.isSilence);
+ var7.put("START_MONITOR", var1);
+ var7.put("END_MONITOR", var2);
+ var7.put("IS_ALARM", var6.isAlarm);
+ }
- }
- }
-
- private void upDateMonitorImpl(String var1, String var2) {
- Cursor var5 = this.cr.query(ICContentProvider.DEVICESTATUS_URL, (String[])null, (String)null, (String[])null, (String)null);
- ArrayList var4 = new ArrayList();
- if (var5 != null) {
- while(true) {
- if (!var5.moveToNext()) {
- var5.close();
- break;
+ this.cr.bulkInsert(ICContentProvider.DEVICESTATUS_URL, var8);
}
- var4.add(new DeviceStatus(var5.getString(1), "0", "0", var5.getInt(4)));
- }
}
- this.cr.delete(ICContentProvider.DEVICESTATUS_URL, (String)null, (String[])null);
- if (var4.size() != 0) {
- ContentValues[] var8 = new ContentValues[var4.size()];
-
- for(int var3 = 0; var3 < var4.size(); ++var3) {
- DeviceStatus var6 = (DeviceStatus)var4.get(var3);
- ContentValues var7 = new ContentValues();
- var8[var3] = var7;
- var7.put("IS_SILENCE", var6.isSilence);
- var7.put("START_MONITOR", var1);
- var7.put("END_MONITOR", var2);
- var7.put("IS_ALARM", var6.isAlarm);
- }
-
- this.cr.bulkInsert(ICContentProvider.DEVICESTATUS_URL, var8);
+ public void deleteMessage(Uri var1) {
+ this.cr.delete(var1, (String) null, (String[]) null);
}
- }
-
- public void deleteMessage(Uri var1) {
- this.cr.delete(var1, (String)null, (String[])null);
- }
-
- public String DeleteContactId(ContentResolver contentResolver, String name) {
- String ContactId=null;
- Uri uri = ContactsContract.RawContacts.CONTENT_URI;
- ContentResolver resolver = contentResolver;
- String where = ContactsContract.PhoneLookup.DISPLAY_NAME;
- Cursor cursor = resolver.query(uri, new String[]{Data._ID}, where + "=?", new String[]{name}, null);
- if (cursor.moveToFirst()) {
- int id = cursor.getInt(0);
- ContactId=String.valueOf(id);
- //根据id删除data中的相应数据
- resolver.delete(uri, where + "=?", new String[]{name});
- uri = ContactsContract.Data.CONTENT_URI;
- resolver.delete(uri, ContactsContract.Data.RAW_CONTACT_ID + "=?", new String[]{id + ""});
- }
- return ContactId;
- }
-
- public boolean getWeather() {
- Cursor var5 = this.cr.query(ICContentProvider.WEATHER_URL, (String[])null, (String)null, (String[])null, (String)null);
- if (var5 != null && var5.moveToNext()) {
- String var1 = var5.getString(1);
- String var2 = var5.getString(2);
- String var3 = var5.getString(3);
- String var4 = var5.getString(4);
- String var7 = var5.getString(5);
- StringBuilder var6 = new StringBuilder();
- var6.append("weather_type=");
- var6.append(var1);
- var6.append("min_temperature=");
- var6.append(var2);
- var6.append("max_temperature=");
- var6.append(var3);
- var6.append("cur_temperature=");
- var6.append(var4);
- var6.append("weather_index=");
- var6.append(var7);
- ICLogger.i(var6.toString());
- return true;
- } else {
- return false;
+ public String deleteContactId(ContentResolver contentResolver, String name) {
+ String ContactId = null;
+ Uri uri = ContactsContract.RawContacts.CONTENT_URI;
+ ContentResolver resolver = contentResolver;
+ String where = ContactsContract.PhoneLookup.DISPLAY_NAME;
+ Cursor cursor = resolver.query(uri, new String[]{Data._ID}, where + "=?", new String[]{name}, null);
+ if (cursor.moveToFirst()) {
+ int id = cursor.getInt(0);
+ ContactId = String.valueOf(id);
+ //根据id删除data中的相应数据
+ resolver.delete(uri, where + "=?", new String[]{name});
+ uri = ContactsContract.Data.CONTENT_URI;
+ resolver.delete(uri, ContactsContract.Data.RAW_CONTACT_ID + "=?", new String[]{id + ""});
+ }
+ return ContactId;
}
- }
-
- public Uri insertMessage(Content var1) {
- ContentValues var2 = new ContentValues();
- var2.put("CATEGORY", var1.category);
- var2.put("CONTENT", var1.content);
- var2.put("PREVIEW", var1.preview);
- var2.put("STATUS", var1.status);
- var2.put("IN_OR_OUT", var1.inOrOut);
- var2.put("CONTACT_CATEGORY", var1.contactCategory);
- var2.put("CONTACT_NUMBER", var1.contactNumber);
- var2.put("SERVER_TIME", var1.serverTime);
- var2.put("LOCAL_TIME", var1.localTime);
- var2.put("ICON", var1.icon);
- return this.cr.insert(ICContentProvider.MESSAGE_URI, var2);
- }
-
- public Uri insertOrUpdate(Content var1) {
- StringBuilder sb = new StringBuilder("CATEGORY=");
- sb.append(var1.category);
- sb.append(" and CONTENT='");
- sb.append(var1.content);
- sb.append("' and CONTACT_NUMBER='");
- sb.append(var1.contactNumber);
- sb.append("' and CONTACT_CATEGORY=");
- sb.append(var1.contactCategory);
- String where = sb.toString();
- Cursor cursor = this.cr.query(ICContentProvider.MESSAGE_URI, new String[]{"_id"}, where, (String[])null, (String)null);
- long id;
- if (cursor != null) {
- if (cursor.moveToNext()) {
- id = cursor.getLong(0);
- } else {
- id = -1L;
- }
-
- cursor.close();
- } else {
- id = -1L;
+
+ public boolean getWeather() {
+ Cursor var5 = this.cr.query(ICContentProvider.WEATHER_URL, (String[]) null, (String) null, (String[]) null, (String) null);
+ if (var5 != null && var5.moveToNext()) {
+ String var1 = var5.getString(1);
+ String var2 = var5.getString(2);
+ String var3 = var5.getString(3);
+ String var4 = var5.getString(4);
+ String var7 = var5.getString(5);
+ StringBuilder var6 = new StringBuilder();
+ var6.append("weather_type=");
+ var6.append(var1);
+ var6.append("min_temperature=");
+ var6.append(var2);
+ var6.append("max_temperature=");
+ var6.append(var3);
+ var6.append("cur_temperature=");
+ var6.append(var4);
+ var6.append("weather_index=");
+ var6.append(var7);
+ ICLogger.i(var6.toString());
+ return true;
+ } else {
+ return false;
+ }
}
- if (id != -1L) {
- Uri var6 = ContentUris.withAppendedId(ICContentProvider.MESSAGE_URI, id);
- ContentValues var5 = new ContentValues();
- var5.put("STATUS", var1.status);
- var5.put("CONTENT", var1.content);
- this.cr.update(var6, var5, (String)null, (String[])null);
- return var6;
- } else {
- return this.insertMessage(var1);
+ public Uri insertMessage(Content var1) {
+ ContentValues var2 = new ContentValues();
+ var2.put("CATEGORY", var1.category);
+ var2.put("CONTENT", var1.content);
+ var2.put("PREVIEW", var1.preview);
+ var2.put("STATUS", var1.status);
+ var2.put("IN_OR_OUT", var1.inOrOut);
+ var2.put("CONTACT_CATEGORY", var1.contactCategory);
+ var2.put("CONTACT_NUMBER", var1.contactNumber);
+ var2.put("SERVER_TIME", var1.serverTime);
+ var2.put("LOCAL_TIME", var1.localTime);
+ var2.put("ICON", var1.icon);
+ return this.cr.insert(ICContentProvider.MESSAGE_URI, var2);
}
- }
-
- public Uri insertOrUpdate(Content content, long id) {
- label21: {
- if (id > 0L) {
- ContentResolver var4 = this.cr;
- Uri var5 = ICContentProvider.MESSAGE_URI;
- StringBuilder var6 = new StringBuilder();
- var6.append("_id=");
- var6.append(id);
- String where = var6.toString();
- Cursor cursor = var4.query(var5, new String[]{"_id"}, where, (String[])null, (String)null);
+
+ public Uri insertOrUpdate(Content var1) {
+ StringBuilder sb = new StringBuilder("CATEGORY=");
+ sb.append(var1.category);
+ sb.append(" and CONTENT='");
+ sb.append(var1.content);
+ sb.append("' and CONTACT_NUMBER='");
+ sb.append(var1.contactNumber);
+ sb.append("' and CONTACT_CATEGORY=");
+ sb.append(var1.contactCategory);
+ String where = sb.toString();
+ Cursor cursor = this.cr.query(ICContentProvider.MESSAGE_URI, new String[]{"_id"}, where, (String[]) null, (String) null);
+ long id;
if (cursor != null) {
- if (cursor.moveToNext()) {
- id = cursor.getLong(0);
- } else {
- id = -1L;
- }
+ if (cursor.moveToNext()) {
+ id = cursor.getLong(0);
+ } else {
+ id = -1L;
+ }
- cursor.close();
- break label21;
+ cursor.close();
+ } else {
+ id = -1L;
}
- }
- id = -1L;
+ if (id != -1L) {
+ Uri var6 = ContentUris.withAppendedId(ICContentProvider.MESSAGE_URI, id);
+ ContentValues var5 = new ContentValues();
+ var5.put("STATUS", var1.status);
+ var5.put("CONTENT", var1.content);
+ this.cr.update(var6, var5, (String) null, (String[]) null);
+ return var6;
+ } else {
+ return this.insertMessage(var1);
+ }
}
- if (id != -1L) {
- Uri var8 = ContentUris.withAppendedId(ICContentProvider.MESSAGE_URI, id);
- ContentValues var9 = new ContentValues();
- var9.put("STATUS", content.status);
- this.cr.update(var8, var9, (String)null, (String[])null);
- return var8;
- } else {
- return this.insertMessage(content);
- }
- }
-
- public Uri insertOrUpdateDownLoadInfo(String var1, int var2, int var3, String var4) {
- StringBuilder var7 = new StringBuilder("IMSI=");
- var7.append(var1);
- String var9 = var7.toString();
- Cursor var10 = this.cr.query(ICContentProvider.DOWNLOADINFO_URL, new String[]{"_id"}, var9, (String[])null, (String)null);
- long var5;
- if (var10 != null) {
- if (var10.moveToNext()) {
- var5 = var10.getLong(0);
- } else {
- var5 = -1L;
- }
-
- var10.close();
- } else {
- var5 = -1L;
- }
+ public Uri insertOrUpdate(Content content, long id) {
+ label21:
+ {
+ if (id > 0L) {
+ ContentResolver var4 = this.cr;
+ Uri var5 = ICContentProvider.MESSAGE_URI;
+ StringBuilder var6 = new StringBuilder();
+ var6.append("_id=");
+ var6.append(id);
+ String where = var6.toString();
+ Cursor cursor = var4.query(var5, new String[]{"_id"}, where, (String[]) null, (String) null);
+ if (cursor != null) {
+ if (cursor.moveToNext()) {
+ id = cursor.getLong(0);
+ } else {
+ id = -1L;
+ }
+
+ cursor.close();
+ break label21;
+ }
+ }
- if (var5 != -1L) {
- Uri var11 = ContentUris.withAppendedId(ICContentProvider.DOWNLOADINFO_URL, var5);
- ContentValues var8 = new ContentValues();
- var8.put("IMSI", var1);
- var8.put("TIME", var4);
- var8.put("NUMBER", var2);
- var8.put("TOTAL_NUMBER", var3);
- this.cr.update(var11, var8, (String)null, (String[])null);
- return var11;
- } else {
- ICLogger.i("插入");
- return this.insertDownLoadInfo(var1, var2, var3, var4);
- }
- }
-
- public void insertOrUpdateUnreadMsg(NotificationParam var1) {
- StringBuilder var4 = new StringBuilder("id=");
- var4.append(var1.id);
- String var8 = var4.toString();
- Cursor var9 = this.cr.query(ICContentProvider.UNREAD_MSG_URI, new String[]{"category"}, var8, (String[])null, (String)null);
- boolean var2 = false;
- boolean var3 = false;
- if (var9 != null) {
- while(true) {
- var2 = var3;
- if (var9.moveToNext()) {
- int var7 = var9.getInt(0);
- if (var7 != var1.category) {
- continue;
- }
-
- Uri var5 = ContentUris.withAppendedId(ICContentProvider.UNREAD_MSG_URI, (long)var7);
- ContentValues var6 = new ContentValues();
- var6.put("category", var1.category);
- var6.put("id", var1.id);
- var6.put("count", var1.noReadmsgCount);
- var6.put("recvtime", var1.lastRevTime);
- this.cr.update(var5, var6, (String)null, (String[])null);
- var2 = true;
+ id = -1L;
}
- var9.close();
- break;
- }
+ if (id != -1L) {
+ Uri var8 = ContentUris.withAppendedId(ICContentProvider.MESSAGE_URI, id);
+ ContentValues var9 = new ContentValues();
+ var9.put("STATUS", content.status);
+ this.cr.update(var8, var9, (String) null, (String[]) null);
+ return var8;
+ } else {
+ return this.insertMessage(content);
+ }
}
- if (!var2) {
- ContentValues var10 = new ContentValues();
- var10.put("category", var1.category);
- var10.put("id", var1.id);
- var10.put("count", var1.noReadmsgCount);
- var10.put("recvtime", var1.lastRevTime);
- this.cr.insert(ICContentProvider.UNREAD_MSG_URI, var10);
- }
+ public Uri insertOrUpdateDownLoadInfo(String var1, int var2, int var3, String var4) {
+ StringBuilder var7 = new StringBuilder("IMSI=");
+ var7.append(var1);
+ String var9 = var7.toString();
+ Cursor var10 = this.cr.query(ICContentProvider.DOWNLOADINFO_URL, new String[]{"_id"}, var9, (String[]) null, (String) null);
+ long var5;
+ if (var10 != null) {
+ if (var10.moveToNext()) {
+ var5 = var10.getLong(0);
+ } else {
+ var5 = -1L;
+ }
- }
-
- public void insertTest(ArrayList<Contact> var1) {
- int var3 = var1.size();
- if (var3 != 0) {
- ContentValues[] var4 = new ContentValues[var3];
-
- for(int var2 = 0; var2 < var3; ++var2) {
- Contact var5 = (Contact)var1.get(var2);
- ContentValues var6 = new ContentValues();
- var4[var2] = var6;
- var6.put("CATEGORY", var5.category);
- var6.put("NAME", var5.name);
- var6.put("NUMBER", var5.number);
- var6.put("ICON", var5.icon_index);
- var6.put("EXTRA", var5.extra);
- }
-
- this.cr.bulkInsert(ICContentProvider.CONTACT_URI, var4);
- }
+ var10.close();
+ } else {
+ var5 = -1L;
+ }
- }
+ if (var5 != -1L) {
+ Uri var11 = ContentUris.withAppendedId(ICContentProvider.DOWNLOADINFO_URL, var5);
+ ContentValues var8 = new ContentValues();
+ var8.put("IMSI", var1);
+ var8.put("TIME", var4);
+ var8.put("NUMBER", var2);
+ var8.put("TOTAL_NUMBER", var3);
+ this.cr.update(var11, var8, (String) null, (String[]) null);
+ return var11;
+ } else {
+ ICLogger.i("插入");
+ return this.insertDownLoadInfo(var1, var2, var3, var4);
+ }
+ }
- public ArrayList<Alarm> queryAlarm() {
- ArrayList var1 = new ArrayList();
- Cursor cursor = this.cr.query(ICContentProvider.ALARM_URI, (String[])null, (String)null, (String[])null, (String)null);
- if (cursor != null) {
- while(true) {
- if (!cursor.moveToNext()) {
- cursor.close();
- break;
+ public void insertOrUpdateUnreadMsg(NotificationParam var1) {
+ StringBuilder var4 = new StringBuilder("id=");
+ var4.append(var1.id);
+ String var8 = var4.toString();
+ Cursor var9 = this.cr.query(ICContentProvider.UNREAD_MSG_URI, new String[]{"category"}, var8, (String[]) null, (String) null);
+ boolean var2 = false;
+ boolean var3 = false;
+ if (var9 != null) {
+ while (true) {
+ var2 = var3;
+ if (var9.moveToNext()) {
+ int var7 = var9.getInt(0);
+ if (var7 != var1.category) {
+ continue;
+ }
+
+ Uri var5 = ContentUris.withAppendedId(ICContentProvider.UNREAD_MSG_URI, (long) var7);
+ ContentValues var6 = new ContentValues();
+ var6.put("category", var1.category);
+ var6.put("id", var1.id);
+ var6.put("count", var1.noReadmsgCount);
+ var6.put("recvtime", var1.lastRevTime);
+ this.cr.update(var5, var6, (String) null, (String[]) null);
+ var2 = true;
+ }
+
+ var9.close();
+ break;
+ }
}
- if ("ON".equals(cursor.getString(4))) {
- var1.add(new Alarm(cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4), cursor.getString(5)));
+ if (!var2) {
+ ContentValues var10 = new ContentValues();
+ var10.put("category", var1.category);
+ var10.put("id", var1.id);
+ var10.put("count", var1.noReadmsgCount);
+ var10.put("recvtime", var1.lastRevTime);
+ this.cr.insert(ICContentProvider.UNREAD_MSG_URI, var10);
}
- }
+
}
- return var1;
- }
-
- public ArrayList<Antioff> queryAntioff(boolean var1) {
- ContentResolver var3 = this.cr;
- Uri var4 = ICContentProvider.ANTIOFF_URI;
- String var2;
- if (var1) {
- var2 = "STATUS='ON'";
- } else {
- var2 = null;
+ public void insertTest(ArrayList<Contact> var1) {
+ int var3 = var1.size();
+ if (var3 != 0) {
+ ContentValues[] var4 = new ContentValues[var3];
+
+ for (int var2 = 0; var2 < var3; ++var2) {
+ Contact var5 = (Contact) var1.get(var2);
+ ContentValues var6 = new ContentValues();
+ var4[var2] = var6;
+ var6.put("CATEGORY", var5.category);
+ var6.put("NAME", var5.name);
+ var6.put("NUMBER", var5.number);
+ var6.put("ICON", var5.icon_index);
+ var6.put("EXTRA", var5.extra);
+ }
+
+ this.cr.bulkInsert(ICContentProvider.CONTACT_URI, var4);
+ }
+
}
- Cursor var5 = var3.query(var4, (String[])null, var2, (String[])null, (String)null);
- ArrayList var6 = new ArrayList();
- if (var5 != null) {
- while(var5.moveToNext()) {
- var6.add(new Antioff(var5.getString(1), var5.getString(2), var5.getString(3), var5.getString(4), var5.getString(5)));
- }
+ public ArrayList<Alarm> queryAlarm() {
+ ArrayList var1 = new ArrayList();
+ Cursor cursor = this.cr.query(ICContentProvider.ALARM_URI, (String[]) null, (String) null, (String[]) null, (String) null);
+ if (cursor != null) {
+ while (true) {
+ if (!cursor.moveToNext()) {
+ cursor.close();
+ break;
+ }
+
+ if ("ON".equals(cursor.getString(4))) {
+ var1.add(new Alarm(cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getString(4), cursor.getString(5)));
+ }
+ }
+ }
- var5.close();
+ return var1;
}
- return var6;
- }
-
- public Contact queryContactIconInfo(String var1) {
- String var2 = var1;
- Cursor var4 = this.cr.query(ICContentProvider.CONTACT_URI, (String[])null, "NUMBER=?", new String[]{var1}, "CATEGORY ASC");
- Contact var5 = null;
- Contact var3 = null;
- if (var4 != null) {
- var5 = var3;
- if (var4.moveToNext()) {
- var5 = new Contact(var4.getInt(1), var4.getString(2), var4.getString(3), var4.getString(4), var4.getString(5));
- }
-
- var4.close();
+ public ArrayList<Antioff> queryAntioff(boolean var1) {
+ ContentResolver var3 = this.cr;
+ Uri var4 = ICContentProvider.ANTIOFF_URI;
+ String var2;
+ if (var1) {
+ var2 = "STATUS='ON'";
+ } else {
+ var2 = null;
+ }
+
+ Cursor var5 = var3.query(var4, (String[]) null, var2, (String[]) null, (String) null);
+ ArrayList var6 = new ArrayList();
+ if (var5 != null) {
+ while (var5.moveToNext()) {
+ var6.add(new Antioff(var5.getString(1), var5.getString(2), var5.getString(3), var5.getString(4), var5.getString(5)));
+ }
+
+ var5.close();
+ }
+
+ return var6;
}
- var3 = var5;
- if (var5 == null) {
- String var7 = var2;
- if (var2.contains("@")) {
- var7 = var2.substring(2);
- }
-
- Cursor var6 = this.context.getContentResolver().query(ICContentProvider.CONTACT_URI, (String[])null, "EXTRA=?", new String[]{var7}, "CATEGORY ASC");
- var3 = var5;
- if (var6 != null) {
- if (var6.moveToNext()) {
- var5 = new Contact(var6.getInt(1), var6.getString(2), var6.getString(3), var6.getString(4), var6.getString(5));
+ public Contact queryContactIconInfo(String var1) {
+ String var2 = var1;
+ Cursor var4 = this.cr.query(ICContentProvider.CONTACT_URI, (String[]) null, "NUMBER=?", new String[]{var1}, "CATEGORY ASC");
+ Contact var5 = null;
+ Contact var3 = null;
+ if (var4 != null) {
+ var5 = var3;
+ if (var4.moveToNext()) {
+ var5 = new Contact(var4.getInt(1), var4.getString(2), var4.getString(3), var4.getString(4), var4.getString(5));
+ }
+
+ var4.close();
}
- var4.close();
var3 = var5;
- }
- }
+ if (var5 == null) {
+ String var7 = var2;
+ if (var2.contains("@")) {
+ var7 = var2.substring(2);
+ }
+
+ Cursor var6 = this.context.getContentResolver().query(ICContentProvider.CONTACT_URI, (String[]) null, "EXTRA=?", new String[]{var7}, "CATEGORY ASC");
+ var3 = var5;
+ if (var6 != null) {
+ if (var6.moveToNext()) {
+ var5 = new Contact(var6.getInt(1), var6.getString(2), var6.getString(3), var6.getString(4), var6.getString(5));
+ }
- return var3;
- }
-
- public ArrayList<NoticeContent> queryNotice(String var1) {
- ArrayList noticelist = new ArrayList();
- ContentResolver var3 = this.cr;
- Uri var4 = ICContentProvider.NOTICE_URL;
- StringBuilder var5 = new StringBuilder();
- var5.append("TIME like '");
- var5.append(var1);
- var5.append("%'");
- Cursor cr_notice = var3.query(var4, (String[])null, var5.toString(), (String[])null, (String)null);
- if (cr_notice != null) {
- while(true) {
- if (!cr_notice.moveToNext()) {
- cr_notice.close();
- break;
+ var4.close();
+ var3 = var5;
+ }
}
- noticelist.add(new NoticeContent(cr_notice.getString(1),
- cr_notice.getString(2),
- cr_notice.getString(3),
- cr_notice.getString(4),
- cr_notice.getString(5),
- cr_notice.getString(6),
- cr_notice.getString(7)));
- }
+ return var3;
}
- return noticelist;
- }
-
- public ArrayList<Silent> querySilence(boolean var1) {
- ContentResolver var3 = this.cr;
- Uri var4 = ICContentProvider.SILENT_URI;
- String var2;
- if (var1) {
- var2 = "STATUS='ON'";
- } else {
- var2 = null;
+ public ArrayList<NoticeContent> queryNotice(String var1) {
+ ArrayList noticelist = new ArrayList();
+ ContentResolver var3 = this.cr;
+ Uri var4 = ICContentProvider.NOTICE_URL;
+ StringBuilder var5 = new StringBuilder();
+ var5.append("TIME like '");
+ var5.append(var1);
+ var5.append("%'");
+ Cursor cr_notice = var3.query(var4, (String[]) null, var5.toString(), (String[]) null, (String) null);
+ if (cr_notice != null) {
+ while (true) {
+ if (!cr_notice.moveToNext()) {
+ cr_notice.close();
+ break;
+ }
+
+ noticelist.add(new NoticeContent(cr_notice.getString(1),
+ cr_notice.getString(2),
+ cr_notice.getString(3),
+ cr_notice.getString(4),
+ cr_notice.getString(5),
+ cr_notice.getString(6),
+ cr_notice.getString(7)));
+ }
+ }
+
+ return noticelist;
}
- Cursor var5 = var3.query(var4, (String[])null, var2, (String[])null, (String)null);
- ArrayList var6 = new ArrayList();
- if (var5 != null) {
- while(var5.moveToNext()) {
- var6.add(new Silent(var5.getString(1), var5.getString(2), var5.getString(3), var5.getString(4), var5.getString(5)));
- }
+ public ArrayList<Silent> querySilence(boolean var1) {
+ ContentResolver var3 = this.cr;
+ Uri var4 = ICContentProvider.SILENT_URI;
+ String var2;
+ if (var1) {
+ var2 = "STATUS='ON'";
+ } else {
+ var2 = null;
+ }
+
+ Cursor var5 = var3.query(var4, (String[]) null, var2, (String[]) null, (String) null);
+ ArrayList var6 = new ArrayList();
+ if (var5 != null) {
+ while (var5.moveToNext()) {
+ var6.add(new Silent(var5.getString(1), var5.getString(2), var5.getString(3), var5.getString(4), var5.getString(5)));
+ }
- var5.close();
- }
+ var5.close();
+ }
- return var6;
- }
-
- public ArrayList<StheartRate> queryStheartRate(boolean var1) {
- ContentResolver var3 = this.cr;
- Uri var4 = ICContentProvider.STHEART_RATE_URL;
- String var2;
- if (var1) {
- var2 = "STATUS='ON'";
- } else {
- var2 = null;
+ return var6;
}
- Cursor var5 = var3.query(var4, (String[])null, var2, (String[])null, (String)null);
- ArrayList var6 = new ArrayList();
- if (var5 != null) {
- while(var5.moveToNext()) {
- var6.add(new StheartRate(var5.getString(1), var5.getString(2), var5.getString(3), var5.getString(4), var5.getString(5)));
- }
+ public ArrayList<StheartRate> queryStheartRate(boolean var1) {
+ ContentResolver var3 = this.cr;
+ Uri var4 = ICContentProvider.STHEART_RATE_URL;
+ String var2;
+ if (var1) {
+ var2 = "STATUS='ON'";
+ } else {
+ var2 = null;
+ }
- var5.close();
- }
+ Cursor var5 = var3.query(var4, (String[]) null, var2, (String[]) null, (String) null);
+ ArrayList var6 = new ArrayList();
+ if (var5 != null) {
+ while (var5.moveToNext()) {
+ var6.add(new StheartRate(var5.getString(1), var5.getString(2), var5.getString(3), var5.getString(4), var5.getString(5)));
+ }
- return var6;
- }
+ var5.close();
+ }
- public NotificationParam queryUnreadMsg(String id, int value) {
+ return var6;
+ }
- Cursor cursor = this.cr.query(ICContentProvider.UNREAD_MSG_URI, new String[]{"category"}, new StringBuilder("id=").append(id).toString(), (String[])null, (String)null);
- NotificationParam ret = null;
+ public NotificationParam queryUnreadMsg(String id, int value) {
- if (cursor != null) {
- while(true) {
- if (cursor.moveToNext()) {
- if (cursor.getInt(0) != value) {
- continue;
- }
- ret = new NotificationParam(value, cursor.getString(1), cursor.getInt(2), cursor.getLong(3));
+ Cursor cursor = this.cr.query(ICContentProvider.UNREAD_MSG_URI, new String[]{"category"}, new StringBuilder("id=").append(id).toString(), (String[]) null, (String) null);
+ NotificationParam ret = null;
+
+ if (cursor != null) {
+ while (true) {
+ if (cursor.moveToNext()) {
+ if (cursor.getInt(0) != value) {
+ continue;
+ }
+ ret = new NotificationParam(value, cursor.getString(1), cursor.getInt(2), cursor.getLong(3));
+ }
+
+ cursor.close();
+ break;
+ }
}
- cursor.close();
- break;
- }
+ return ret;
}
- return ret;
- }
-
- public ArrayList<NotificationParam> queryUnreadMsg() {
- ArrayList var1 = new ArrayList();
- Cursor var2 = this.cr.query(ICContentProvider.UNREAD_MSG_URI, (String[])null, (String)null, (String[])null, (String)null);
- if (var2 != null) {
- while(true) {
- if (!var2.moveToNext()) {
- var2.close();
- break;
+ public ArrayList<NotificationParam> queryUnreadMsg() {
+ ArrayList var1 = new ArrayList();
+ Cursor var2 = this.cr.query(ICContentProvider.UNREAD_MSG_URI, (String[]) null, (String) null, (String[]) null, (String) null);
+ if (var2 != null) {
+ while (true) {
+ if (!var2.moveToNext()) {
+ var2.close();
+ break;
+ }
+
+ var1.add(new NotificationParam(var2.getInt(0), var2.getString(1), var2.getInt(2), Long.valueOf(var2.getLong(3))));
+ }
}
- var1.add(new NotificationParam(var2.getInt(0), var2.getString(1), var2.getInt(2), Long.valueOf(var2.getLong(3))));
- }
+ return var1;
}
- return var1;
- }
-
- public void resetDatabase() {
- this.cr.delete(ICContentProvider.NOTICE_URL, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.STHEART_RATE_URL, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.URLDOWNLOADPIC_URL, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.DEVICESTATUS_URL, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.DOWNLOADINFO_URL, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.IKNOWLEDGE_URL, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.WEATHER_URL, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.ALARM_URI, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.CONTACT_URI, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.MESSAGE_URI, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.SILENT_URI, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.ANTIOFF_URI, (String)null, (String[])null);
- this.cr.delete(ICContentProvider.UNREAD_MSG_URI, (String)null, (String[])null);
- }
-
- public void saveAlarm(ArrayList<Alarm> paramArrayList) {
- this.cr.delete(ICContentProvider.ALARM_URI, null, null);
- int i = paramArrayList.size();
- if (i != 0) {
- ContentValues[] arrayOfContentValues = new ContentValues[i];
- for (byte b = 0; b < i; b++) {
- Alarm alarm = paramArrayList.get(b);
- ContentValues contentValues = new ContentValues();
- arrayOfContentValues[b] = contentValues;
- contentValues.put("TIME", alarm.time);
- contentValues.put("WEEK", alarm.week);
- contentValues.put("RING", alarm.ring);
- contentValues.put("STATUS", alarm.status);
- contentValues.put("NAME", alarm.name);
- }
- this.cr.bulkInsert(ICContentProvider.ALARM_URI, arrayOfContentValues);
+ public void resetDatabase() {
+ this.cr.delete(ICContentProvider.NOTICE_URL, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.STHEART_RATE_URL, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.URLDOWNLOADPIC_URL, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.DEVICESTATUS_URL, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.DOWNLOADINFO_URL, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.IKNOWLEDGE_URL, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.WEATHER_URL, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.ALARM_URI, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.CONTACT_URI, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.MESSAGE_URI, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.SILENT_URI, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.ANTIOFF_URI, (String) null, (String[]) null);
+ this.cr.delete(ICContentProvider.UNREAD_MSG_URI, (String) null, (String[]) null);
}
- this.context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
- }
-
- public void saveAntioff(ArrayList<Antioff> paramArrayList) {
- String str;
- Cursor cursor = this.cr.query(ICContentProvider.ANTIOFF_URI, null, null, null, null);
- if (cursor != null) {
- for (str = null; cursor.moveToNext(); str = cursor.getString(5));
- cursor.close();
- } else {
- str = null;
+
+ public void saveAlarm(ArrayList<Alarm> paramArrayList) {
+ this.cr.delete(ICContentProvider.ALARM_URI, null, null);
+ int i = paramArrayList.size();
+ if (i != 0) {
+ ContentValues[] arrayOfContentValues = new ContentValues[i];
+ for (byte b = 0; b < i; b++) {
+ Alarm alarm = paramArrayList.get(b);
+ ContentValues contentValues = new ContentValues();
+ arrayOfContentValues[b] = contentValues;
+ contentValues.put("TIME", alarm.time);
+ contentValues.put("WEEK", alarm.week);
+ contentValues.put("RING", alarm.ring);
+ contentValues.put("STATUS", alarm.status);
+ contentValues.put("NAME", alarm.name);
+ }
+ this.cr.bulkInsert(ICContentProvider.ALARM_URI, arrayOfContentValues);
+ }
+ this.context.sendBroadcast(new Intent(ACTION_ALARM_ALARM_CHANGE));
+ }
+
+ public void saveAntioff(ArrayList<Antioff> paramArrayList) {
+ String str;
+ Cursor cursor = this.cr.query(ICContentProvider.ANTIOFF_URI, null, null, null, null);
+ if (cursor != null) {
+ for (str = null; cursor.moveToNext(); str = cursor.getString(5)) ;
+ cursor.close();
+ } else {
+ str = null;
+ }
+ this.cr.delete(ICContentProvider.ANTIOFF_URI, null, null);
+ int i = paramArrayList.size();
+ if (i != 0) {
+ ContentValues[] arrayOfContentValues = new ContentValues[i];
+ for (byte b = 0; b < i; b++) {
+ Antioff antioff = paramArrayList.get(b);
+ ContentValues contentValues = new ContentValues();
+ arrayOfContentValues[b] = contentValues;
+ contentValues.put("START_TIME", antioff.start);
+ contentValues.put("END_TIME", antioff.end);
+ contentValues.put("WEEK", antioff.week);
+ contentValues.put("STATUS", antioff.status);
+ contentValues.put("CUR_SYS_STATUS", str);
+ }
+ this.cr.bulkInsert(ICContentProvider.ANTIOFF_URI, arrayOfContentValues);
+ }
+ this.context.sendBroadcast(new Intent(ACTION_ANTIOFF_ALARM_CHANGE));
}
- this.cr.delete(ICContentProvider.ANTIOFF_URI, null, null);
- int i = paramArrayList.size();
- if (i != 0) {
- ContentValues[] arrayOfContentValues = new ContentValues[i];
- for (byte b = 0; b < i; b++) {
- Antioff antioff = paramArrayList.get(b);
- ContentValues contentValues = new ContentValues();
- arrayOfContentValues[b] = contentValues;
- contentValues.put("START_TIME", antioff.start);
- contentValues.put("END_TIME", antioff.end);
- contentValues.put("WEEK", antioff.week);
- contentValues.put("STATUS", antioff.status);
- contentValues.put("CUR_SYS_STATUS", str);
- }
- this.cr.bulkInsert(ICContentProvider.ANTIOFF_URI, arrayOfContentValues);
+
+ public void saveContacts(final ArrayList<Contact> contactArray, boolean admin, boolean care, boolean call, boolean partner, boolean video, boolean sos) {
+ synchronized (this) {
+ }
+
+ try {
+ long currenttime = SystemClock.elapsedRealtime();
+ if (currenttime - lastUpdateTime > 1000L) {
+ this.saveContactsImpl(contactArray, admin, care, call, partner, video, sos);
+ lastUpdateTime = currenttime;
+ } else {
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ DBHelper.this.saveContacts(contactArray, admin, care, call, partner, video, sos);
+ }
+ }, 1000);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
- this.context.sendBroadcast(new Intent(ACTION_ANTIOFF_ALARM_CHANGE));
- }
-
- public void saveContacts(final ArrayList<Contact> contactArray, boolean admin, boolean care, boolean call, boolean partner, boolean video,boolean sos) {
- synchronized(this){}
-
- try {
- long currenttime = SystemClock.elapsedRealtime();
- if (currenttime - lastUpdateTime > 1000L) {
- this.saveContactsImpl(contactArray, admin, care,call, partner, video,sos);
- lastUpdateTime = currenttime;
- } else {
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- DBHelper.this.saveContacts(contactArray, admin, care,call, partner, video,sos);
- }
- }, 1000);
- }
- } finally {
- ;
+
+ public void saveNoticeContent(ArrayList<NoticeContent> var1) {
+ this.cr.delete(ICContentProvider.NOTICE_URL, (String) null, (String[]) null);
+ if (var1 != null) {
+ int var3 = var1.size();
+ if (var3 != 0) {
+ ContentValues[] var4 = new ContentValues[var3];
+
+ for (int var2 = 0; var2 < var3; ++var2) {
+ NoticeContent var5 = (NoticeContent) var1.get(var2);
+ ContentValues var6 = new ContentValues();
+ var4[var2] = var6;
+ var6.put("TIME", var5.noticeTime);
+ var6.put("NAME", var5.noticeName);
+ var6.put("NUMBER", var5.noticeNumber);
+ var6.put("ID", var5.noticeID);
+ var6.put("CATEGORY", var5.noticeCategory);
+ var6.put("FREQUENCY", var5.noticeFrequency);
+ var6.put("CONTENT", var5.noticeContent);
+ }
+
+ this.cr.bulkInsert(ICContentProvider.NOTICE_URL, var4);
+ }
+ }
+
+ this.context.sendBroadcast(new Intent("com.enqualcomm.support.ACTION_NOTICE_ALARM_CHANGE"));
}
- }
-
- public void saveNoticeContent(ArrayList<NoticeContent> var1) {
- this.cr.delete(ICContentProvider.NOTICE_URL, (String)null, (String[])null);
- if (var1 != null) {
- int var3 = var1.size();
- if (var3 != 0) {
- ContentValues[] var4 = new ContentValues[var3];
-
- for(int var2 = 0; var2 < var3; ++var2) {
- NoticeContent var5 = (NoticeContent)var1.get(var2);
- ContentValues var6 = new ContentValues();
- var4[var2] = var6;
- var6.put("TIME", var5.noticeTime);
- var6.put("NAME", var5.noticeName);
- var6.put("NUMBER", var5.noticeNumber);
- var6.put("ID", var5.noticeID);
- var6.put("CATEGORY", var5.noticeCategory);
- var6.put("FREQUENCY", var5.noticeFrequency);
- var6.put("CONTENT", var5.noticeContent);
+ public void saveSilent(ArrayList<Silent> slist) {
+ Cursor cursor = this.cr.query(ICContentProvider.SILENT_URI, (String[]) null, (String) null, (String[]) null, (String) null);
+ String current_sys_status;
+ if (cursor != null) {
+ //获取silent免打扰状态 ON/OFF
+ for (current_sys_status = null; cursor.moveToNext(); current_sys_status = cursor.getString(5)) {
+ }
+
+ cursor.close();
+ } else {
+ current_sys_status = null;
+ }
+
+ this.cr.delete(ICContentProvider.SILENT_URI, (String) null, (String[]) null);
+ int count = slist.size();
+ if (count != 0) {
+ ContentValues[] contentValueslist = new ContentValues[count];
+
+ for (int row = 0; row < count; ++row) {
+ Silent silent = (Silent) slist.get(row);
+ ContentValues contentValues = new ContentValues();
+ contentValueslist[row] = contentValues;
+ contentValues.put("START_TIME", silent.start);
+ contentValues.put("END_TIME", silent.end);
+ contentValues.put("WEEK", silent.week);
+ contentValues.put("STATUS", silent.status);
+ contentValues.put("CUR_SYS_STATUS", current_sys_status);
+ ICLogger.i("add silience " + silent.start + "-" + silent.end + " " + silent.week + " " + silent.status + " " + current_sys_status);
+
+ }
+
+ this.cr.bulkInsert(ICContentProvider.SILENT_URI, contentValueslist);
}
- this.cr.bulkInsert(ICContentProvider.NOTICE_URL, var4);
- }
}
- this.context.sendBroadcast(new Intent("com.enqualcomm.support.ACTION_NOTICE_ALARM_CHANGE"));
- }
+ public void saveStheartRateList(ArrayList<StheartRate> var1) {
+ StringBuilder var4 = new StringBuilder();
+ var4.append("stheartRateListSize=");
+ var4.append(var1.size());
+ var4.append("stheartRateList=");
+ var4.append(var1.toString());
+ ICLogger.i(var4.toString());
+ this.cr.delete(ICContentProvider.STHEART_RATE_URL, (String) null, (String[]) null);
+ int var3 = var1.size();
+ if (var3 != 0) {
+ ContentValues[] var7 = new ContentValues[var3];
+
+ for (int var2 = 0; var2 < var3; ++var2) {
+ StheartRate var5 = (StheartRate) var1.get(var2);
+ ContentValues var6 = new ContentValues();
+ var7[var2] = var6;
+ var6.put("START_TIME", var5.start);
+ var6.put("END_TIME", var5.end);
+ var6.put("WEEK", var5.week);
+ var6.put("STATUS", var5.status);
+ var6.put("INTERVAL", var5.interval);
+ }
- public void saveSilent(ArrayList<Silent> slist) {
- Cursor cursor = this.cr.query(ICContentProvider.SILENT_URI, (String[])null, (String)null, (String[])null, (String)null);
- String current_sys_status;
- if (cursor != null) {
- //获取silent免打扰状态 ON/OFF
- for(current_sys_status = null; cursor.moveToNext(); current_sys_status = cursor.getString(5)) {
- }
+ this.cr.bulkInsert(ICContentProvider.STHEART_RATE_URL, var7);
+ }
- cursor.close();
- } else {
- current_sys_status = null;
+ this.context.sendBroadcast(new Intent("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE"));
}
- this.cr.delete(ICContentProvider.SILENT_URI, (String)null, (String[])null);
- int count = slist.size();
- if (count != 0) {
- ContentValues[] contentValueslist = new ContentValues[count];
-
- for(int row = 0; row < count; ++row) {
- Silent silent = (Silent)slist.get(row);
- ContentValues contentValues = new ContentValues();
- contentValueslist[row] = contentValues;
- contentValues.put("START_TIME", silent.start);
- contentValues.put("END_TIME", silent.end);
- contentValues.put("WEEK", silent.week);
- contentValues.put("STATUS", silent.status);
- contentValues.put("CUR_SYS_STATUS", current_sys_status);
- ICLogger.i("add silience "+silent.start+"-"+silent.end+" "+silent.week+" "+silent.status+" "+current_sys_status);
-
- }
-
- this.cr.bulkInsert(ICContentProvider.SILENT_URI, contentValueslist);
+ public void saveUrlDownloadPic(String var1) {
+ String[] var8 = var1.split(",");
+
+ for (int var2 = 0; var2 < var8.length; ++var2) {
+ ContentResolver var5 = this.cr;
+ Uri var6 = ICContentProvider.URLDOWNLOADPIC_URL;
+ String var7 = var8[var2];
+ Cursor var9 = var5.query(var6, new String[]{"_id"}, "URL=?", new String[]{var7}, (String) null);
+ long var3;
+ if (var9 != null) {
+ if (var9.moveToNext()) {
+ var3 = var9.getLong(0);
+ } else {
+ var3 = -1L;
+ }
+
+ var9.close();
+ } else {
+ var3 = -1L;
+ }
+
+ if (var3 == -1L) {
+ ContentValues var10 = new ContentValues();
+ var10.put("URL", var8[var2]);
+ this.cr.insert(ICContentProvider.URLDOWNLOADPIC_URL, var10);
+ }
+ }
+
}
- }
-
- public void saveStheartRateList(ArrayList<StheartRate> var1) {
- StringBuilder var4 = new StringBuilder();
- var4.append("stheartRateListSize=");
- var4.append(var1.size());
- var4.append("stheartRateList=");
- var4.append(var1.toString());
- ICLogger.i(var4.toString());
- this.cr.delete(ICContentProvider.STHEART_RATE_URL, (String)null, (String[])null);
- int var3 = var1.size();
- if (var3 != 0) {
- ContentValues[] var7 = new ContentValues[var3];
-
- for(int var2 = 0; var2 < var3; ++var2) {
- StheartRate var5 = (StheartRate)var1.get(var2);
- ContentValues var6 = new ContentValues();
- var7[var2] = var6;
- var6.put("START_TIME", var5.start);
- var6.put("END_TIME", var5.end);
- var6.put("WEEK", var5.week);
- var6.put("STATUS", var5.status);
- var6.put("INTERVAL", var5.interval);
- }
-
- this.cr.bulkInsert(ICContentProvider.STHEART_RATE_URL, var7);
+ public void saveWeather(Weather var1) {
+ this.cr.delete(ICContentProvider.WEATHER_URL, (String) null, (String[]) null);
+ ContentValues var2 = new ContentValues();
+ var2.put("WEATHER_TYPE", var1.weatherType);
+ var2.put("MIN_TEMPERATURE", var1.min_Temperature);
+ var2.put("MAX_TEMPERATURE", var1.max_Temperature);
+ var2.put("CUR_TEMPERATURE", var1.cur_Temperature);
+ var2.put("WEATHER_INDEX", var1.weatherIndex);
+ var2.put("WEATHER_INFO", var1.weatherInfo);
+ Uri var4 = this.cr.insert(ICContentProvider.WEATHER_URL, var2);
+ StringBuilder var3 = new StringBuilder();
+ var3.append("升级天气==");
+ var3.append(var1.toString());
+ var3.append("条目=");
+ var3.append(var4);
+ ICLogger.i(var3.toString());
}
- this.context.sendBroadcast(new Intent("com.enqualcomm.support.STHEART_RATE_ALARM_CHANGE"));
- }
-
- public void saveUrlDownloadPic(String var1) {
- String[] var8 = var1.split(",");
-
- for(int var2 = 0; var2 < var8.length; ++var2) {
- ContentResolver var5 = this.cr;
- Uri var6 = ICContentProvider.URLDOWNLOADPIC_URL;
- String var7 = var8[var2];
- Cursor var9 = var5.query(var6, new String[]{"_id"}, "URL=?", new String[]{var7}, (String)null);
- long var3;
- if (var9 != null) {
- if (var9.moveToNext()) {
- var3 = var9.getLong(0);
- } else {
- var3 = -1L;
+ public void upDateMonitor(final String var1, final String var2) {
+ synchronized (this) {
}
- var9.close();
- } else {
- var3 = -1L;
- }
+ try {
+ long var3 = SystemClock.elapsedRealtime();
+ if (var3 - lastUpdateTime > 1000L) {
+ this.upDateMonitorImpl(var1, var2);
+ lastUpdateTime = var3;
+ } else {
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ DBHelper.this.upDateMonitor(var1, var2);
+ }
+ }, 1000);
+ }
+ } finally {
+ ;
+ }
- if (var3 == -1L) {
- ContentValues var10 = new ContentValues();
- var10.put("URL", var8[var2]);
- this.cr.insert(ICContentProvider.URLDOWNLOADPIC_URL, var10);
- }
}
- }
-
- public void saveWeather(Weather var1) {
- this.cr.delete(ICContentProvider.WEATHER_URL, (String)null, (String[])null);
- ContentValues var2 = new ContentValues();
- var2.put("WEATHER_TYPE", var1.weatherType);
- var2.put("MIN_TEMPERATURE", var1.min_Temperature);
- var2.put("MAX_TEMPERATURE", var1.max_Temperature);
- var2.put("CUR_TEMPERATURE", var1.cur_Temperature);
- var2.put("WEATHER_INDEX", var1.weatherIndex);
- var2.put("WEATHER_INFO", var1.weatherInfo);
- Uri var4 = this.cr.insert(ICContentProvider.WEATHER_URL, var2);
- StringBuilder var3 = new StringBuilder();
- var3.append("升级天气==");
- var3.append(var1.toString());
- var3.append("条目=");
- var3.append(var4);
- ICLogger.i(var3.toString());
- }
-
- public void upDateMonitor(final String var1, final String var2) {
- synchronized(this){}
-
- try {
- long var3 = SystemClock.elapsedRealtime();
- if (var3 - lastUpdateTime > 1000L) {
- this.upDateMonitorImpl(var1, var2);
- lastUpdateTime = var3;
- } else {
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- DBHelper.this.upDateMonitor(var1, var2);
- }
- },1000);
- }
- } finally {
- ;
+ public void upDateStatus(int var1) {
+ ContentValues var2 = new ContentValues();
+ var2.put("IS_ALARM", var1);
+ this.cr.update(ICContentProvider.DEVICESTATUS_URL, var2, (String) null, (String[]) null);
}
- }
-
- public void upDateStatus(int var1) {
- ContentValues var2 = new ContentValues();
- var2.put("IS_ALARM", var1);
- this.cr.update(ICContentProvider.DEVICESTATUS_URL, var2, (String)null, (String[])null);
- }
-
- public void upDateStatus(String var1) {
- ContentValues var2 = new ContentValues();
- var2.put("IS_SILENCE", var1);
- this.cr.update(ICContentProvider.DEVICESTATUS_URL, var2, (String)null, (String[])null);
- }
-
- public void upDateorInsertDeviceStatus(String var1) {
- Cursor var2 = this.cr.query(ICContentProvider.DEVICESTATUS_URL, (String[])null, (String)null, (String[])null, (String)null);
- ContentValues var3 = new ContentValues();
- var3.put("IS_SILENCE", var1);
- if (var2 != null) {
- if (var2.getCount() == 0) {
- this.cr.insert(ICContentProvider.DEVICESTATUS_URL, var3);
- return;
- }
- this.cr.update(ICContentProvider.DEVICESTATUS_URL, var3, (String)null, (String[])null);
+ public void upDateStatus(String var1) {
+ ContentValues var2 = new ContentValues();
+ var2.put("IS_SILENCE", var1);
+ this.cr.update(ICContentProvider.DEVICESTATUS_URL, var2, (String) null, (String[]) null);
}
- }
+ public void upDateorInsertDeviceStatus(String var1) {
+ Cursor var2 = this.cr.query(ICContentProvider.DEVICESTATUS_URL, (String[]) null, (String) null, (String[]) null, (String) null);
+ ContentValues var3 = new ContentValues();
+ var3.put("IS_SILENCE", var1);
+ if (var2 != null) {
+ if (var2.getCount() == 0) {
+ this.cr.insert(ICContentProvider.DEVICESTATUS_URL, var3);
+ return;
+ }
+ this.cr.update(ICContentProvider.DEVICESTATUS_URL, var3, (String) null, (String[]) null);
+ }
+ }
- public void updateMessage(Content var1, Uri var2) {
- ContentValues var3 = new ContentValues();
- var3.put("CATEGORY", var1.category);
- var3.put("CONTENT", var1.content);
- var3.put("PREVIEW", var1.preview);
- var3.put("STATUS", var1.status);
- var3.put("IN_OR_OUT", var1.inOrOut);
- var3.put("CONTACT_CATEGORY", var1.contactCategory);
- var3.put("CONTACT_NUMBER", var1.contactNumber);
- var3.put("SERVER_TIME", var1.serverTime);
- var3.put("LOCAL_TIME", var1.localTime);
- this.cr.update(var2, var3, (String)null, (String[])null);
- }
+
+ public void updateMessage(Content var1, Uri var2) {
+ ContentValues var3 = new ContentValues();
+ var3.put("CATEGORY", var1.category);
+ var3.put("CONTENT", var1.content);
+ var3.put("PREVIEW", var1.preview);
+ var3.put("STATUS", var1.status);
+ var3.put("IN_OR_OUT", var1.inOrOut);
+ var3.put("CONTACT_CATEGORY", var1.contactCategory);
+ var3.put("CONTACT_NUMBER", var1.contactNumber);
+ var3.put("SERVER_TIME", var1.serverTime);
+ var3.put("LOCAL_TIME", var1.localTime);
+ this.cr.update(var2, var3, (String) null, (String[]) null);
+ }
- public void insertSleepRecord(SleepRecord sr){
- /*每次打点的记录表 SLEEP_DATE 代表记录睡眠的日期,例如 22日上午7:00的计入到21日的睡眠记录中。 DATE代表记录的时间,此出应该等于上文的 22日 7:00 */
+ public void insertSleepRecord(SleepRecord sr) {
+ /*每次打点的记录表 SLEEP_DATE 代表记录睡眠的日期,例如 22日上午7:00的计入到21日的睡眠记录中。 DATE代表记录的时间,此出应该等于上文的 22日 7:00 */
// sqlite.execSQL("CREATE TABLE SLEEP_RECORDS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,SLEEP_DATE TEXT,DATE TEXT, TIME TEXT,STEPCOUNT INTEGER ,ROLLTIMES INTEGER ,STATUS TEXT )");
- ContentValues values=new ContentValues();
- values.put("DATE",sr.date);
- values.put("SLEEP_DATE",sr.sleep_date);
- values.put("STEPCOUNT",sr.stepCount);
- values.put("STATUS",sr.status);
- this.cr.insert( ICContentProvider.SLEEP_RECORDS_URI, values);
- }
-
-
- public ArrayList<SleepRecord> querySleepRecord(String sleep_date) {
- ArrayList sleeprecordList = new ArrayList();
- ContentResolver pcr = this.cr;
- Uri table = ICContentProvider.SLEEP_RECORDS_URI;
- StringBuilder where = new StringBuilder();
- where.append("SLEEP_DATE like '");
- where.append(sleep_date);
- where.append("'");
- Cursor cr_sleeprecord = pcr.query(table, (String[])null, where.toString(), (String[])null, (String)null);
- if (cr_sleeprecord != null) {
- while (true) {
- if (!cr_sleeprecord.moveToNext()) {
- cr_sleeprecord.close();
- break;
+ ContentValues values = new ContentValues();
+ values.put("DATE", sr.date);
+ values.put("SLEEP_DATE", sr.sleep_date);
+ values.put("STEPCOUNT", sr.stepCount);
+ values.put("STATUS", sr.status);
+ this.cr.insert(ICContentProvider.SLEEP_RECORDS_URI, values);
+ }
+
+
+ public ArrayList<SleepRecord> querySleepRecord(String sleep_date) {
+ ArrayList sleeprecordList = new ArrayList();
+ ContentResolver pcr = this.cr;
+ Uri table = ICContentProvider.SLEEP_RECORDS_URI;
+ StringBuilder where = new StringBuilder();
+ where.append("SLEEP_DATE like '");
+ where.append(sleep_date);
+ where.append("'");
+ Cursor cr_sleeprecord = pcr.query(table, (String[]) null, where.toString(), (String[]) null, (String) null);
+ if (cr_sleeprecord != null) {
+ while (true) {
+ if (!cr_sleeprecord.moveToNext()) {
+ cr_sleeprecord.close();
+ break;
+ }
+ sleeprecordList.add(new SleepRecord(
+ cr_sleeprecord.getString(cr_sleeprecord.getColumnIndex("DATE")), cr_sleeprecord.getString(cr_sleeprecord.getColumnIndex("SLEEP_DATE")), cr_sleeprecord.getInt(cr_sleeprecord.getColumnIndex("STEPCOUNT"))));
+ }
}
- sleeprecordList.add(new SleepRecord(
- cr_sleeprecord.getString(cr_sleeprecord.getColumnIndex("DATE")), cr_sleeprecord.getString(cr_sleeprecord.getColumnIndex("SLEEP_DATE")), cr_sleeprecord.getInt(cr_sleeprecord.getColumnIndex("STEPCOUNT"))));
- }
+ return sleeprecordList;
}
- return sleeprecordList;
- }
- public void updateSleepInfo(SleepInfo si){
- /*计算后的分值,每天会在睡眠结束后计算Records获得*/
-// sqlite.execSQL("CREATE TABLE SLEEP_STATUS(_id INTEGER PRIMARY KEY AUTOINCREMENT ,DATE TEXT , DEEP_SLEEP INTEGER , LIGHT_SLEEP INTEGER ,SCORE INTEGER )");
-
- ContentValues values = new ContentValues();
- values.put("DATE",si.getCurrentDate());
- values.put("DEEP_SLEEP",si.getDeepsleep_minutes());
- values.put("LIGHT_SLEEP",si.getLightsleep_minutes());
- values.put("SCORE",si.getScore());
- this.cr.insert( ICContentProvider.SLEEP_STATUS_URI, values);
- }
-
-
- public int querySleepScore(String dateyyyyMMddHHmmss){
-
- ContentResolver pcr = this.cr;
- Uri table = ICContentProvider.SLEEP_STATUS_URI;
- StringBuilder where = new StringBuilder();
- where.append("DATE like '");
- where.append(dateyyyyMMddHHmmss);
- where.append("'");
- ICLogger.i("Query SleepScore "+where);
- Cursor cr_sleeprecord = pcr.query(table, (String[])null, where.toString(), (String[])null, (String)null);
- if (cr_sleeprecord != null) {
- int score=0;
- if (cr_sleeprecord.getCount()> 0) {
- if (cr_sleeprecord.moveToFirst()) {
- int index = cr_sleeprecord.getColumnIndex("SCORE");
- score = cr_sleeprecord.getInt(4);
- ICLogger.i("get SleepScore "+score + " column index "+index);
+
+ /**
+ * 更新睡眠信息
+ *
+ * @param si
+ */
+ public void updateSleepInfo(SleepInfo si) {
+ Observable.create(new Observable.OnSubscribe<Object>() {
+ @Override
+ public void call(Subscriber<? super Object> subscriber) {
+ /*计算后的分值,每天会在睡眠结束后计算Records获得*/
+ ContentValues values = new ContentValues();
+ values.put("DATE", si.getCurrentDate());
+ values.put("DEEP_SLEEP", si.getDeepsleep_minutes());
+ values.put("LIGHT_SLEEP", si.getLightsleep_minutes());
+ values.put("SCORE", si.getScore());
+ cr.insert(ICContentProvider.SLEEP_STATUS_URI, values);
}
+ }).subscribeOn(Schedulers.io()).subscribe();
+ }
+
+
+ public int querySleepScore(String dateyyyyMMddHHmmss) {
+ ContentResolver pcr = this.cr;
+ Uri table = ICContentProvider.SLEEP_STATUS_URI;
+ StringBuilder where = new StringBuilder();
+ where.append("DATE like '");
+ where.append(dateyyyyMMddHHmmss);
+ where.append("'");
+ ICLogger.i("Query SleepScore " + where);
+ Cursor cr_sleeprecord = pcr.query(table, (String[]) null, where.toString(), (String[]) null, (String) null);
+ if (cr_sleeprecord != null) {
+ int score = 0;
+ if (cr_sleeprecord.getCount() > 0) {
+ if (cr_sleeprecord.moveToFirst()) {
+ int index = cr_sleeprecord.getColumnIndex("SCORE");
+ score = cr_sleeprecord.getInt(4);
+ ICLogger.i("get SleepScore " + score + " column index " + index);
+ }
+ }
+ cr_sleeprecord.close();
+ ICLogger.i("get SleepScore " + score);
+ return score;
}
- cr_sleeprecord.close();
- ICLogger.i("get SleepScore "+ score);
- return score;
+ return 0;
}
- return 0;
- }
- public int deleteSleepData(){
- this.cr.delete(ICContentProvider.SLEEP_RECORDS_URI, (String)null, (String[])null);
+
+ public int deleteSleepData() {
+ this.cr.delete(ICContentProvider.SLEEP_RECORDS_URI, (String) null, (String[]) null);
return 0;
}
- public void insertEventMsg(String dateyyyyMMddHHmmss,int event_type,String event_name){
- //日志表格,存储开机关机,低电报警等消息。。。
-// sqlite.execSQL("CREATE TABLE EVENT_MESSAGE(_id INTEGER PRIMARY KEY AUTOINCREMENT , EVENT_TYPE INTEGER, EVENT_NAME TEXT, TIME TEXT )");
-
- ContentValues values = new ContentValues();
- values.put("EVENT_TYPE",event_type);
- values.put("EVENT_NAME",event_name);
- values.put("TIME",dateyyyyMMddHHmmss);
- this.cr.insert( ICContentProvider.EVENT_MESSAGE_URI, values);
-
- }
-
-//sqlite.execSQL("CREATE TABLE PROTOCOL_CMD_RECORDS(_id INTEGER PRIMARY KEY AUTOINCREMENT , FLAG INTEGER, DATE TEXT, TIME TEXT ,TOPIC TEXT,CMD TEXT )");
-
- public long insertCMDRecord(StringMessage msg){
- ContentValues values = new ContentValues();
- values.put("FLAG",msg.haveSent());
- if(msg.getDate()==null || msg.getTime()==null)
- msg.setDate(TimeUtil.getSystemDateYYMMDD(),TimeUtil.getSystemTimeHHmmss());
- values.put("DATE",msg.getDate());
- values.put("TIME",msg.getTime());
- values.put("TOPIC",msg.cmd());
- values.put("CMD",msg.isFromCache());
- long raw_contactID = ContentUris.parseId(cr.insert(ICContentProvider.PROTOCOL_CMD_RECORDS_URI, values));
- if (Config.LOG_TOFILE) ICLogger.logToFile( "APILog", " insert db " +raw_contactID+" "+msg.getDate()+msg.getTime()+" "+ msg.cmd()+" "+msg.isFromCache());
-
- return raw_contactID;
- }
-
-
- //
- public void updateCMDRecord(int id, int flag){
-
- String WhereClause=null;
- if (id>=0) {
- WhereClause=new StringBuilder("_id=").append(id).toString();
-
- ContentValues flagcontent = new ContentValues();
- flagcontent.put("FLAG", flag);
- this.cr.update(ICContentProvider.PROTOCOL_CMD_RECORDS_URI, flagcontent, WhereClause, (String[])null);
+
+ public void insertEventMsg(String dateyyyyMMddHHmmss, int event_type, String event_name) {
+ //日志表格,存储开机关机,低电报警等消息。。。
+ ContentValues values = new ContentValues();
+ values.put("EVENT_TYPE", event_type);
+ values.put("EVENT_NAME", event_name);
+ values.put("TIME", dateyyyyMMddHHmmss);
+ this.cr.insert(ICContentProvider.EVENT_MESSAGE_URI, values);
+
}
- }
-
- public void clearCMDRecordsHaveSent(){
- ContentResolver pcr = this.cr;
- Uri table = ICContentProvider.PROTOCOL_CMD_RECORDS_URI;
- StringBuilder where = new StringBuilder();
- where.append("FLAG>1");
- Cursor cmdrecords = pcr.query(table, (String[])null, where.toString(), (String[])null, (String)null);
- if(cmdrecords!=null){
- if(cmdrecords.getCount()>500) {
- pcr.delete(table, where.toString(), (String[]) null);
- ICLogger.i("delete cmdRecords have sent ");
- }else{
- ICLogger.i("cmdRecords less than 500 , skip delete ");
- }
+
+ public long insertCMDRecord(StringMessage msg) {
+ ContentValues values = new ContentValues();
+ values.put("FLAG", msg.haveSent());
+ if (msg.getDate() == null || msg.getTime() == null)
+ msg.setDate(TimeUtil.getSystemDateYYMMDD(), TimeUtil.getSystemTimeHHmmss());
+ values.put("DATE", msg.getDate());
+ values.put("TIME", msg.getTime());
+ values.put("TOPIC", msg.cmd());
+ values.put("CMD", msg.isFromCache());
+ long raw_contactID = ContentUris.parseId(cr.insert(ICContentProvider.PROTOCOL_CMD_RECORDS_URI, values));
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("APILog", " insert db " + raw_contactID + " " + msg.getDate() + msg.getTime() + " " + msg.cmd() + " " + msg.isFromCache());
+
+ return raw_contactID;
}
- }
-
- public StringMessage queryNotSentCMDRecord(){
- ContentResolver pcr = this.cr;
- Uri table = ICContentProvider.PROTOCOL_CMD_RECORDS_URI;
- StringBuilder where = new StringBuilder();
- where.append("FLAG=0");
- //ICLogger.i("Query cmdRecords "+where);
- Cursor cmdrecords = pcr.query(table, (String[])null, where.toString(), (String[])null, (String)null);
- StringMessage msg=null;
- if (cmdrecords != null) {
- int score=0;
- if (cmdrecords.getCount()> 0) {
- if (cmdrecords.moveToFirst()) {
- String topic=cmdrecords.getString(cmdrecords.getColumnIndex("TOPIC"));
- String cmd=cmdrecords.getString(cmdrecords.getColumnIndex("CMD"));
- String date=cmdrecords.getString(cmdrecords.getColumnIndex("DATE"));
- String time=cmdrecords.getString(cmdrecords.getColumnIndex("TIME"));
- int flag=cmdrecords.getInt(cmdrecords.getColumnIndex("FLAG"));
- int index=cmdrecords.getInt(cmdrecords.getColumnIndex("_id"));
-
- msg=new StringMessage(new String[]{topic});
- msg.refresh(cmd);
- msg.setDate(date,time);
- msg.setSentFlag(flag);
- msg.setIndex(index);
- ICLogger.i("get cmd Record not sent _id "+index + " "+date+time+" topic "+topic+" cmd "+cmd);
- }
- }
- cmdrecords.close();
- if (msg==null)
- ICLogger.i("no cmd record in not sent status !");
+ public void updateCMDRecord(int id, int flag) {
+ String WhereClause = null;
+ if (id >= 0) {
+ WhereClause = new StringBuilder("_id=").append(id).toString();
+ ContentValues flagcontent = new ContentValues();
+ flagcontent.put("FLAG", flag);
+ this.cr.update(ICContentProvider.PROTOCOL_CMD_RECORDS_URI, flagcontent, WhereClause, null);
+ }
}
- return msg;
- }
-
-
- public StringMessage queryWaitCMDRecord(){
- ContentResolver pcr = this.cr;
- Uri table = ICContentProvider.PROTOCOL_CMD_RECORDS_URI;
- StringBuilder where = new StringBuilder();
- where.append("FLAG=1");
- // ICLogger.i("Query cmdRecords "+where);
- Cursor cmdrecords = pcr.query(table, (String[])null, where.toString(), (String[])null, (String)null);
- StringMessage msg=null;
- if (cmdrecords != null) {
- int score=0;
- if (cmdrecords.getCount()> 0) {
- if (cmdrecords.moveToFirst()) {
- String topic=cmdrecords.getString(cmdrecords.getColumnIndex("TOPIC"));
- String cmd=cmdrecords.getString(cmdrecords.getColumnIndex("CMD"));
- String date=cmdrecords.getString(cmdrecords.getColumnIndex("DATE"));
- String time=cmdrecords.getString(cmdrecords.getColumnIndex("TIME"));
- int flag=cmdrecords.getInt(cmdrecords.getColumnIndex("FLAG"));
- int index=cmdrecords.getInt(cmdrecords.getColumnIndex("_id"));
-
- msg=new StringMessage(new String[]{topic});
- msg.refresh(cmd);
- msg.setDate(date,time);
- msg.setSentFlag(flag);
- msg.setIndex(index);
- ICLogger.i("get cmd Record wait response _id "+index + " "+date+time+" topic "+topic+" cmd "+cmd);
+ public void clearCMDRecordsHaveSent() {
+ ContentResolver pcr = this.cr;
+ Uri table = ICContentProvider.PROTOCOL_CMD_RECORDS_URI;
+ StringBuilder where = new StringBuilder();
+ where.append("FLAG>1");
+ Cursor cmdRecords = pcr.query(table, null, where.toString(), null, null);
+ if (cmdRecords != null) {
+ if (cmdRecords.getCount() > 500) {
+ pcr.delete(table, where.toString(), null);
+ ICLogger.i("delete cmdRecords have sent ");
+ } else {
+ ICLogger.i("cmdRecords less than 500 , skip delete ");
+ }
}
- }
- cmdrecords.close();
-
- if (msg==null)
- ICLogger.i("no cmd record in wait status !");
}
- return msg;
- }
-
-
- public StringMessage queryDiscardCMDRecord(){
- ContentResolver pcr = this.cr;
- Uri table = ICContentProvider.PROTOCOL_CMD_RECORDS_URI;
- StringBuilder where = new StringBuilder();
- where.append("FLAG=3");
- // ICLogger.i("Query cmdRecords "+where);
- Cursor cmdrecords = pcr.query(table, (String[])null, where.toString(), (String[])null, (String)null);
- StringMessage msg=null;
- if (cmdrecords != null) {
- int score=0;
- if (cmdrecords.getCount()> 0) {
- if (cmdrecords.moveToFirst()) {
- String topic=cmdrecords.getString(cmdrecords.getColumnIndex("TOPIC"));
- String cmd=cmdrecords.getString(cmdrecords.getColumnIndex("CMD"));
- String date=cmdrecords.getString(cmdrecords.getColumnIndex("DATE"));
- String time=cmdrecords.getString(cmdrecords.getColumnIndex("TIME"));
- int flag=cmdrecords.getInt(cmdrecords.getColumnIndex("FLAG"));
- int index=cmdrecords.getInt(cmdrecords.getColumnIndex("_id"));
-
- msg=new StringMessage(new String[]{topic});
- msg.refresh(cmd);
- msg.setDate(date,time);
- msg.setSentFlag(flag);
- msg.setIndex(index);
- ICLogger.i("get cmd Record discarded response _id "+index + " "+date+time+" topic "+topic+" cmd "+cmd);
+
+ public StringMessage queryNotSentCMDRecord() {
+ ContentResolver pcr = this.cr;
+ Uri table = ICContentProvider.PROTOCOL_CMD_RECORDS_URI;
+ StringBuilder where = new StringBuilder();
+ where.append("FLAG=0");
+ //ICLogger.i("Query cmdRecords "+where);
+ Cursor cmdrecords = pcr.query(table, null, where.toString(), null, null);
+ StringMessage msg = null;
+ if (cmdrecords != null) {
+ int score = 0;
+ if (cmdrecords.getCount() > 0) {
+ if (cmdrecords.moveToFirst()) {
+ String topic = cmdrecords.getString(cmdrecords.getColumnIndex("TOPIC"));
+ String cmd = cmdrecords.getString(cmdrecords.getColumnIndex("CMD"));
+ String date = cmdrecords.getString(cmdrecords.getColumnIndex("DATE"));
+ String time = cmdrecords.getString(cmdrecords.getColumnIndex("TIME"));
+ int flag = cmdrecords.getInt(cmdrecords.getColumnIndex("FLAG"));
+ int index = cmdrecords.getInt(cmdrecords.getColumnIndex("_id"));
+
+ msg = new StringMessage(new String[]{topic});
+ msg.refresh(cmd);
+ msg.setDate(date, time);
+ msg.setSentFlag(flag);
+ msg.setIndex(index);
+ ICLogger.i("get cmd Record not sent _id " + index + " " + date + time + " topic " + topic + " cmd " + cmd);
+
+ }
+ }
+ cmdrecords.close();
+
+ if (msg == null)
+ ICLogger.i("no cmd record in not sent status !");
}
- }
- cmdrecords.close();
+ return msg;
+ }
+
- if (msg==null)
- ICLogger.i("no cmd record in wait status !");
+ public StringMessage queryWaitCMDRecord() {
+ ContentResolver pcr = this.cr;
+ Uri table = ICContentProvider.PROTOCOL_CMD_RECORDS_URI;
+ StringBuilder where = new StringBuilder();
+ where.append("FLAG=1");
+ // ICLogger.i("Query cmdRecords "+where);
+ Cursor cmdrecords = pcr.query(table, (String[]) null, where.toString(), (String[]) null, (String) null);
+ StringMessage msg = null;
+ if (cmdrecords != null) {
+ int score = 0;
+ if (cmdrecords.getCount() > 0) {
+ if (cmdrecords.moveToFirst()) {
+ String topic = cmdrecords.getString(cmdrecords.getColumnIndex("TOPIC"));
+ String cmd = cmdrecords.getString(cmdrecords.getColumnIndex("CMD"));
+ String date = cmdrecords.getString(cmdrecords.getColumnIndex("DATE"));
+ String time = cmdrecords.getString(cmdrecords.getColumnIndex("TIME"));
+ int flag = cmdrecords.getInt(cmdrecords.getColumnIndex("FLAG"));
+ int index = cmdrecords.getInt(cmdrecords.getColumnIndex("_id"));
+
+ msg = new StringMessage(new String[]{topic});
+ msg.refresh(cmd);
+ msg.setDate(date, time);
+ msg.setSentFlag(flag);
+ msg.setIndex(index);
+ ICLogger.i("get cmd Record wait response _id " + index + " " + date + time + " topic " + topic + " cmd " + cmd);
+
+ }
+ }
+ cmdrecords.close();
+
+ if (msg == null)
+ ICLogger.i("no cmd record in wait status !");
+ }
+ return msg;
}
- return msg;
- }
+ public StringMessage queryDiscardCMDRecord() {
+ ContentResolver pcr = this.cr;
+ Uri table = ICContentProvider.PROTOCOL_CMD_RECORDS_URI;
+ StringBuilder where = new StringBuilder();
+ where.append("FLAG=3");
+ // ICLogger.i("Query cmdRecords "+where);
+ Cursor cmdrecords = pcr.query(table, (String[]) null, where.toString(), (String[]) null, (String) null);
+ StringMessage msg = null;
+ if (cmdrecords != null) {
+ int score = 0;
+ if (cmdrecords.getCount() > 0) {
+ if (cmdrecords.moveToFirst()) {
+ String topic = cmdrecords.getString(cmdrecords.getColumnIndex("TOPIC"));
+ String cmd = cmdrecords.getString(cmdrecords.getColumnIndex("CMD"));
+ String date = cmdrecords.getString(cmdrecords.getColumnIndex("DATE"));
+ String time = cmdrecords.getString(cmdrecords.getColumnIndex("TIME"));
+ int flag = cmdrecords.getInt(cmdrecords.getColumnIndex("FLAG"));
+ int index = cmdrecords.getInt(cmdrecords.getColumnIndex("_id"));
+
+ msg = new StringMessage(new String[]{topic});
+ msg.refresh(cmd);
+ msg.setDate(date, time);
+ msg.setSentFlag(flag);
+ msg.setIndex(index);
+ ICLogger.i("get cmd Record discarded response _id " + index + " " + date + time + " topic " + topic + " cmd " + cmd);
+ }
+ }
+ cmdrecords.close();
+
+ if (msg == null)
+ ICLogger.i("no cmd record in wait status !");
+ }
+ return msg;
+ }
+
}
package com.enqualcomm.support.utils;
+
import android.content.Context;
import android.content.Intent;
import android.database.ContentObserver;
import android.os.Handler;
import android.os.Message;
import android.provider.CallLog.Calls;
+
import com.enqualcomm.support.Constants;
import com.enqualcomm.support.bean.Contact;
import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.bean.Runtime;
+
import java.text.SimpleDateFormat;
import java.util.Date;
private static final int MISSED_CALL_MSG = 1;
private static final String[] PROJECT = new String[]{"name", "number", "type", "new", "date"};
private Context mContext;
- private Handler mHandler = new Handler(EventLooperHandlerThread.makeLooper(MissedCallContentObserver.class.getSimpleName())) {
+ private Handler mHandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper()) {
public void handleMessage(Message var1) {
int var2 = var1.what;
boolean var3 = true;
if (var2 == 1) {
- MissedCallContentObserver.DataHolder var5 = (MissedCallContentObserver.DataHolder)var1.obj;
+ MissedCallContentObserver.DataHolder var5 = (MissedCallContentObserver.DataHolder) var1.obj;
StringBuilder var4 = new StringBuilder();
var4.append("you have a missed call, name : ");
var4.append(var5.contact.name);
}
public void onChange(boolean var1) {
- Cursor var2 = this.mContext.getContentResolver().query(Calls.CONTENT_URI, PROJECT, (String)null, (String[])null, "date DESC");
+ Cursor var2 = this.mContext.getContentResolver().query(Calls.CONTENT_URI, PROJECT, (String) null, (String[]) null, "date DESC");
if (var2 != null) {
if (var2.moveToFirst()) {
- switch(var2.getInt(var2.getColumnIndex("type"))) {
+ switch (var2.getInt(var2.getColumnIndex("type"))) {
case 1:
ICLogger.i("incoming type");
break;
this.mMissedCallDate = var4;
Date var6 = new Date(var4);
(new SimpleDateFormat("yyyy-MM-dd;HH:mm:ss")).format(var6);
- Cursor var13 = this.mContext.getContentResolver().query(Constants.CONTACT_URI, (String[])null, "CATEGORY IN (1,2,3)", (String[])null, (String)null);
+ Cursor var13 = this.mContext.getContentResolver().query(Constants.CONTACT_URI, (String[]) null, "CATEGORY IN (1,2,3)", (String[]) null, (String) null);
if (var13 != null) {
StringBuilder var7 = new StringBuilder();
var7.append("cursor1.size = ");
var7.append(var13.getCount());
ICLogger.i(var7.toString());
- while(var13.moveToNext()) {
+ while (var13.moveToNext()) {
String var8 = var13.getString(3);
if (var8.contains(var3) || var3.contains(var8)) {
int var9 = var13.getInt(1);
import android.os.SystemClock;
import android.util.Log;
-
import com.enqualcomm.support.Config;
-import com.enqualcomm.support.adapter.BTHelper;
import com.enqualcomm.support.bean.EventLooperHandlerThread;
-import com.enqualcomm.support.service.SilentManager;
-import com.ic.protocols.protocolAPIHelper;
+import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.StringMessage;
-import com.enqualcomm.support.service.HeartRateManager;
-import com.enqualcomm.support.CoreService;
+import com.ic.protocols.protocolAPIHelper;
import java.nio.ByteBuffer;
import java.util.concurrent.ExecutorService;
import static com.enqualcomm.support.utils.RxSocket.SocketStatus.CONNECTED;
-import com.enqualcomm.support.bean.Runtime;
-
public class NettyConnection implements Connection {
- private static long realtime_old;
- private static final String TAG = NettyConnection.class.getSimpleName();
+ private static long realtime_old;
+ private static final String TAG = NettyConnection.class.getSimpleName();
+
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
- ExecutorService executorService = Executors.newSingleThreadExecutor();
+ private protocolAPIHelper API = null;
+ private ConnectionListener listener = null;
- private protocolAPIHelper API=null;
- private ConnectionListener listener=null;
-
- private int timeout = 60;
+ private int timeout = 60;
private Handler mHandler;
- public NettyConnection(ConnectionListener paramConnectionListener,Runtime runtime) {
- Log.i(TAG, "NettyConnection ");
- this.listener = paramConnectionListener;
+ public NettyConnection(ConnectionListener paramConnectionListener, Runtime runtime) {
+ Log.i(TAG, "NettyConnection ");
+ this.listener = paramConnectionListener;
- mHandler = new Handler(EventLooperHandlerThread.makeLooper(NettyConnection.class.getSimpleName()),new Handler.Callback() {
- @Override
- public boolean handleMessage(Message message) {
+ mHandler = new Handler(EventLooperHandlerThread.getInstance().makeLooper(), new Handler.Callback() {
+ @Override
+ public boolean handleMessage(Message message) {
- if (message.what == 100){
- byte[] bytes=message.getData().getByteArray("RecvData");
- String msg= new String(bytes);
+ if (message.what == 100) {
+ byte[] bytes = message.getData().getByteArray("RecvData");
+ String msg = new String(bytes);
- log("get Msg :"+msg+" (size) byteslen" + bytes.length +" strlen"+ msg.length());
- API.parserCmd("",bytes);
+ log("get Msg :" + msg + " (size) byteslen" + bytes.length + " strlen" + msg.length());
+ API.parserCmd("", bytes);
+ }
+ return false;
}
- return false;
- }
- });
-
- if (API == null) API=new protocolAPIHelper(this,runtime );
-
- initReadListener();
- init_connection_listener();
- }
-
- private void connectImpl(String host, int port) {
- connectServer(host,port);
- }
-
- public void close() {
+ });
+
+ if (API == null) API = new protocolAPIHelper(this, runtime);
+
+ initReadListener();
+ init_connection_listener();
+ }
+
+ private void connectImpl(String host, int port) {
+ connectServer(host, port);
+ }
+
+ public void close() {
// listener =null;
// RxSocket.getInstance().setConnectionListener(null);
- this.disconnect();
- }
-
- public void connect(final String host, final int port) {
- long l = SystemClock.elapsedRealtime();
- if (host.isEmpty()||host ==null){
- ICLogger.i("host name error "+host);
- return ;
+ this.disconnect();
}
- if (l - realtime_old < 3000L ) {
- ICLogger.i("3秒内skip 重连!");
- return;
- }
- realtime_old = l;
- ICLogger.i("connect1 "+host+":"+port);
+
+ public void connect(final String host, final int port) {
+ long l = SystemClock.elapsedRealtime();
+ if (host.isEmpty() || host == null) {
+ ICLogger.i("host name error " + host);
+ return;
+ }
+ if (l - realtime_old < 3000L) {
+ ICLogger.i("3秒内skip 重连!");
+ return;
+ }
+ realtime_old = l;
+ ICLogger.i("connect1 " + host + ":" + port);
// disconnect();
- this.executorService.execute(new Runnable() {
- public void run() {
- NettyConnection.this.connectImpl(host, port);
- ICLogger.i("connect2");
- }
+ this.executorService.execute(new Runnable() {
+ public void run() {
+ NettyConnection.this.connectImpl(host, port);
+ ICLogger.i("connect2");
+ }
});
- }
-
- public void disconnect() {
-
- disconnectServer();
- }
-
+ }
- private boolean connectServer(String serverip,int serverport){
+ public void disconnect() {
- //进行连接Socket:这里使用的是,在本地上开启了一个服务器。
+ disconnectServer();
+ }
- RxSocket.getInstance().connectRx(serverip==null?"118.178.155.223":serverip,serverport)
- .subscribe(
- aBoolean -> {
- log("RxSocket Connect "+aBoolean);
- },
- throwable -> {
- log("RxSocket Connect Error : "+throwable.getMessage());
- },
- () -> {
- log("RxSocket Connect main");
- }
- );
-
-
- return true;
- }
-
- public boolean disconnectServer(){
-
- log("Call disconnectServer");
- //断开连接
- RxSocket.getInstance().disConnect()
- .subscribe(
- aBoolean -> {
- log("RxSocket DisConnect "+aBoolean);
- },
- throwable -> {
- log("RxSocket DisConnect Error : "+throwable.getMessage());
- },
- () -> {
- log("RxSocket DisConnect main");
- }
- );
+ private boolean connectServer(String serverip, int serverport) {
- return true;
- }
- private void log(String msg) {
- ICLogger.log(TAG,msg);
- }
+ //进行连接Socket:这里使用的是,在本地上开启了一个服务器。
+ RxSocket.getInstance().connectRx(serverip == null ? "118.178.155.223" : serverip, serverport)
+ .subscribe(
+ aBoolean -> {
+ log("RxSocket Connect " + aBoolean);
+ },
+ throwable -> {
+ log("RxSocket Connect Error : " + throwable.getMessage());
+ },
+ () -> {
+ log("RxSocket Connect main");
- public boolean isServerConnected(){
- return (RxSocket.getInstance().getSocketStatus()== CONNECTED)?true:false;
- }
+ }
+ );
- public boolean sendMsg(String cmd) {
- if( cmd==null || cmd.isEmpty())
- {
- return false;
+ return true;
}
+ public boolean disconnectServer() {
- if (!isServerConnected()){
-
- log("skiped"+cmd);
- if (Config.LOG_TOFILE) ICLogger.logToFile("APILog"," skiped " + cmd);
- return false;
- }else{
- log("send "+cmd);
- if (Config.LOG_TOFILE) ICLogger.logToFile("APILog"," sent " + cmd);
- //向RxSocket写数据
- //示例数据:IWAP00867155030001063#
- byte[] test = cmd.getBytes();
- ByteBuffer byteBuffer = ByteBuffer.wrap(test);
- RxSocket.getInstance().write(byteBuffer)
+ log("Call disconnectServer");
+ //断开连接
+ RxSocket.getInstance().disConnect()
.subscribe(
aBoolean -> {
- log("RxSocket write " + aBoolean);
+ log("RxSocket DisConnect " + aBoolean);
},
throwable -> {
- log("RxSocket write Error : " + throwable.getMessage());
+ log("RxSocket DisConnect Error : " + throwable.getMessage());
},
() -> {
- log("RxSocket write main ");
+ log("RxSocket DisConnect main");
}
);
+ return true;
+ }
+
+ private void log(String msg) {
+ ICLogger.log(TAG, msg);
+ }
+
+ public boolean isServerConnected() {
+ return (RxSocket.getInstance().getSocketStatus() == CONNECTED) ? true : false;
}
- return true;
- }
+ public boolean sendMsg(String cmd) {
+
+ if (cmd == null || cmd.isEmpty()) {
+ return false;
+ }
+
- public boolean sendMsg(String cmdtype,byte[] cmdArray) {
- log(cmdtype);
- return sendMsg(cmdArray);
+ if (!isServerConnected()) {
+
+ log("skiped" + cmd);
+ if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " skiped " + cmd);
+ return false;
+ } else {
+ log("send " + cmd);
+ if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " sent " + cmd);
+ //向RxSocket写数据
+ //示例数据:IWAP00867155030001063#
+ byte[] test = cmd.getBytes();
+ ByteBuffer byteBuffer = ByteBuffer.wrap(test);
+ RxSocket.getInstance().write(byteBuffer)
+ .subscribe(
+ aBoolean -> {
+ log("RxSocket write " + aBoolean);
+ },
+ throwable -> {
+ log("RxSocket write Error : " + throwable.getMessage());
+ },
+ () -> {
+ log("RxSocket write main ");
+ }
+ );
+
+
+ }
+
+ return true;
+ }
+
+ public boolean sendMsg(String cmdtype, byte[] cmdArray) {
+ log(cmdtype);
+ return sendMsg(cmdArray);
}
- public boolean sendMsg(byte[] cmdArray) {
- if( cmdArray==null || cmdArray.length==0)
- {
+ public boolean sendMsg(byte[] cmdArray) {
+
+ if (cmdArray == null || cmdArray.length == 0) {
return false;
}
- if (!isServerConnected()){
+ if (!isServerConnected()) {
- log("skipedBytes "+new String(cmdArray));
- if (Config.LOG_TOFILE)ICLogger.logToFile("APILog"," skiped " + new String(cmdArray));
+ log("skipedBytes " + new String(cmdArray));
+ if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " skiped " + new String(cmdArray));
return false;
- }else{
- log("sendBytes "+new String(cmdArray));
- if (Config.LOG_TOFILE) ICLogger.logToFile("APILog"," sentBytes " + new String(cmdArray));
+ } else {
+ log("sendBytes " + new String(cmdArray));
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("APILog", " sentBytes " + new String(cmdArray));
//向RxSocket写数据
//示例数据:IWAP00867155030001063#
ByteBuffer byteBuffer = ByteBuffer.wrap(cmdArray);
return true;
}
- public int getTimeout() { return this.timeout; }
+
+ public int getTimeout() {
+ return this.timeout;
+ }
- public void DeliverCMDMessageToSystem(String cmd,String msg){
- if (this.listener!=null){
- String[] msgArr=new String[]{cmd,msg};
- StringMessage stringMessage=new StringMessage(msgArr);
- stringMessage.refresh(msg);
- this.listener.onReceive(stringMessage );
- }
- }
+ public void DeliverCMDMessageToSystem(String cmd, String msg) {
+ if (this.listener != null) {
+ String[] msgArr = new String[]{cmd, msg};
+ StringMessage stringMessage = new StringMessage(msgArr);
+ stringMessage.refresh(msg);
+ this.listener.onReceive(stringMessage);
+ }
+ }
- private void initReadListener(){
- //监听Socket的收包
+ private void initReadListener() {
+ //监听Socket的收包
// RxSocket.getInstance().read()
// .subscribeOn(Schedulers.newThread())
// .observeOn(AndroidSchedulers.mainThread())
// log("get Msg ()");
// }
// );
- RxSocket.getInstance().setSocketReadCallback(new RxSocket.SocketReadCallback() {
- @Override
- public void onRecvMsg(byte[] bytes) {
-
- Message msg=new Message();
- Bundle bdl=new Bundle();
- bdl.putByteArray("RecvData",bytes);
- msg.what=100;
- msg.setData(bdl);
- mHandler.sendMessage(msg);
- }
- });
-
-
- }
-
-
-
- private void init_connection_listener(){
-
- //监听Socket的连接状态
- RxSocket.getInstance().socketStatusListener()
- .subscribeOn(Schedulers.newThread())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(socketStatus -> {
- log("socketStatusListener socketStatus:" + socketStatus.name());
- if (socketStatus.name().equals("CONNECTED")){
- if (this.listener!=null){
- this.listener.onConnectionOpen();
- }
- }else if (socketStatus.name().equals("DIS_CONNECT") || socketStatus.name().equals("DIS_CONNECT_BY_SERVERSIDE")) {
- if (this.listener!=null){
- this.listener.onConnectionClose(socketStatus.name());
- }
- disconnectServer();
- }
- });
- }
- public void open() {
-
-
- }
-
- public void send(StringMessage msg) {
-
- if(msg==null) {
- ICLogger.i(" StringMessage is null skip send!");
- return ;
- }
- sendMsg(msg.isFromCache());
- ICLogger.logToFile("APILog","send "+msg.getIndex()+" "+msg.getDate()+msg.getTime()+" "+msg.cmd()+" "+msg.isFromCache());
- // ICLogger.i(paramStringMessage.isFromCache());
-
- }
-
- public boolean sendBlocking(StringMessage paramStringMessage) {
- ICLogger.i(paramStringMessage.isFromCache());
- sendMsg(paramStringMessage.isFromCache());
- return true;
+ RxSocket.getInstance().setSocketReadCallback(new RxSocket.SocketReadCallback() {
+ @Override
+ public void onRecvMsg(byte[] bytes) {
+
+ Message msg = new Message();
+ Bundle bdl = new Bundle();
+ bdl.putByteArray("RecvData", bytes);
+ msg.what = 100;
+ msg.setData(bdl);
+ mHandler.sendMessage(msg);
+ }
+ });
+
+
+ }
+
+
+ private void init_connection_listener() {
+
+ //监听Socket的连接状态
+ RxSocket.getInstance().socketStatusListener()
+ .subscribeOn(Schedulers.newThread())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(socketStatus -> {
+ log("socketStatusListener socketStatus:" + socketStatus.name());
+ if (socketStatus.name().equals("CONNECTED")) {
+ if (this.listener != null) {
+ this.listener.onConnectionOpen();
+ }
+ } else if (socketStatus.name().equals("DIS_CONNECT") || socketStatus.name().equals("DIS_CONNECT_BY_SERVERSIDE")) {
+ if (this.listener != null) {
+ this.listener.onConnectionClose(socketStatus.name());
+ }
+ disconnectServer();
+ }
+ });
+ }
+
+ public void open() {
+
+
+ }
+
+ public void send(StringMessage msg) {
+
+ if (msg == null) {
+ ICLogger.i(" StringMessage is null skip send!");
+ return;
+ }
+ sendMsg(msg.isFromCache());
+ ICLogger.logToFile("APILog", "send " + msg.getIndex() + " " + msg.getDate() + msg.getTime() + " " + msg.cmd() + " " + msg.isFromCache());
+ // ICLogger.i(paramStringMessage.isFromCache());
+
+ }
+
+ public boolean sendBlocking(StringMessage paramStringMessage) {
+ ICLogger.i(paramStringMessage.isFromCache());
+ sendMsg(paramStringMessage.isFromCache());
+ return true;
+ }
+
+ public void setTimeout(int paramInt) {
+ this.timeout = paramInt;
}
-
- public void setTimeout(int paramInt) { this.timeout = paramInt; }
}
package com.enqualcomm.support.utils;
-import android.app.Notification;
import android.app.NotificationManager;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
-import android.media.RingtoneManager;
-import android.net.Uri;
import android.os.Handler;
-import android.os.Messenger;
+import android.os.HandlerThread;
import android.os.PowerManager;
import android.os.Vibrator;
-import android.support.v4.app.NotificationCompat;
-import android.view.Gravity;
-import android.view.MotionEvent;
-import android.view.View;
import android.view.WindowManager;
-
import com.enqualcomm.support.Config;
import com.enqualcomm.support.Constants;
import com.enqualcomm.support.CoreService;
-import com.enqualcomm.support.LocationClient;
import com.enqualcomm.support.R;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
-import com.enqualcomm.support.bean.NotificationParam;
+import com.enqualcomm.support.bean.Contact;
import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.StringMessage;
import com.enqualcomm.support.bean.VoiceContent;
-import com.enqualcomm.support.service.Deliver;
-import com.ic.jni.ICJniUtils;
-import com.enqualcomm.support.bean.Contact;
import com.enqualcomm.support.service.AudioService;
+import com.enqualcomm.support.service.Deliver;
import com.enqualcomm.support.service.HeartRateManager;
import com.ic.protocols.protocolAPIHelper;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
-import static android.media.RingtoneManager.TYPE_NOTIFICATION;
import static android.os.PowerManager.ACQUIRE_CAUSES_WAKEUP;
import static android.os.PowerManager.SCREEN_DIM_WAKE_LOCK;
-import static com.enqualcomm.support.Constants.ACTION_CLOSE_UNREAD_MSG;
-import static com.enqualcomm.support.Constants.ACTION_HEATR_RATE_START;
import static com.enqualcomm.support.Constants.ACTION_MESSAGE_SENT;
import static com.enqualcomm.support.Constants.ACTION_PLAYTIME;
import static com.enqualcomm.support.Constants.ACTION_REMOTE_CAMERA;
-import static com.enqualcomm.support.Constants.ACTION_SEND_EMEGENCY_LOCATION_START;
-import static com.enqualcomm.support.Constants.ACTION_SEND_SOS_MSG;
import static com.enqualcomm.support.Constants.ACTION_SET_SIT_RANGE;
import static com.enqualcomm.support.Constants.ACTION_SHUTDOWN;
import static com.enqualcomm.support.Constants.ACTION_TEMP_RESULT;
import static com.enqualcomm.support.Constants.KEY_TEMP_BODY;
import static com.enqualcomm.support.Constants.KEY_TEMP_WRIST;
import static com.enqualcomm.support.Constants.RESUME_ACTION;
-
import static com.enqualcomm.support.bean.Content.CONTACT_CATEGORY_GROUP;
import static com.enqualcomm.support.utils.TemperatureUtil.KEY_TEMP_BYPROTOCOL;
import static com.enqualcomm.support.utils.TemperatureUtil.KEY_TEMP_OUT;
public class ProcessReceiver extends BroadcastReceiver {
- private static final int MICRO_CHAT = 2;
-
- private static int last_app_id;
-
- private static String last_message_name;
-
- private static CustomDialog mCustomDialog;
-
- private CustomNotification mCustomNotification;
-
- private CustomDialog.Builder mDialog;
-
- private CustomNotification.Builder mNotificationDialog;
-
- private NotificationManager mNotificationManager;
-
- private Vibrator vibrator;
-
- private float x1 = 0.0F;
-
- private float x2 = 0.0F;
-
- private float y1 = 0.0F;
-
- private float y2 = 0.0F;
-
- private static Handler mHandler=new Handler(EventLooperHandlerThread.makeLooper(ProcessReceiver.class.getSimpleName()));
- private void initMyDialog(final Context context, final Contact contact, int app_id,String msg,boolean needreply) {
- String var4 = contact==null?"SMS":contact.name;
-
- if (this.mDialog == null) {
- this.mDialog = new CustomDialog.Builder(context);
- }
+ private static final int MICRO_CHAT = 2;
- StringBuilder var5 = new StringBuilder();
- var5.append("===mCustomDialog ")
- .append(mCustomDialog)
- .append(" , appid ").append(app_id);
+ private static int last_app_id;
- ICLogger.i(var5.toString());
- if (mCustomDialog != null && mCustomDialog.isShowing() && last_message_name != null && var4 != null && last_message_name.equals(var4) && last_app_id == app_id) {
- mCustomDialog.dismiss();
- }
+ private static String last_message_name;
- last_message_name = var4;
- last_app_id = app_id;
- CustomDialog.Builder tmpDialog;
- if (app_id == 1) {
- tmpDialog = this.mDialog.setTitle(context.getString(R.string.setting_title)).setApp(1);
- StringBuilder var6 = new StringBuilder();
- var6.append(context.getString(R.string.voiceMessage));
- var6.append(" ");
- var6.append(var4);
- var6.append(context.getString(R.string.voiceMessageEnd));
- mCustomDialog = tmpDialog.setMessage(var6.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface var1x, int var2x) {
- var1x.dismiss();
- ComponentName var3 = new ComponentName("com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.chat.ChatActivity_");
- Intent var5 = new Intent("android.intent.action.MAIN");
- var5.putExtra("ACTIVITY_TYPE", 2);
- var5.putExtra("contact", contact);
- var5.addCategory("android.intent.category.DEFAULT");
- var5.addFlags(FLAG_ACTIVITY_NEW_TASK);
- var5.setComponent(var3);
- VibrateUtil.getInstance(context).VibrateOn(false);
- try {
- context.startActivity(var5);
- } catch (Exception e) {
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
- }
+ private static CustomDialog mCustomDialog;
+ private CustomNotification mCustomNotification;
+
+ private CustomDialog.Builder mDialog;
+
+ private CustomNotification.Builder mNotificationDialog;
+
+ private NotificationManager mNotificationManager;
+
+ private Vibrator vibrator;
+
+ private float x1 = 0.0F;
+
+ private float x2 = 0.0F;
+
+ private float y1 = 0.0F;
+
+ private float y2 = 0.0F;
+
+ public ProcessReceiver() {
+ if (mHandler == null) {
+ HandlerThread handlerThread = new HandlerThread("ic:process-receiver-handler-thread");
+ handlerThread.start();
+ mHandler = new Handler(handlerThread.getLooper());
}
- }).setNegativeButton(context.getString(R.string.cancel), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface var1, int var2) {
- var1.dismiss();
- VibrateUtil.getInstance(context).VibrateOn(false);
- }
- }).create();
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
- mCustomDialog.show();
- } else if (app_id == 2) {
- tmpDialog = this.mDialog.setTitle(context.getString(R.string.hht_misscall_call)).setApp(app_id);
- StringBuilder var7 = new StringBuilder();
- var7.append(context.getString(R.string.hht_call_start));
- var7.append(var4);
- var7.append(context.getString(R.string.hht_call_end));
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface var1, int var2) {
- var1.dismiss();
- VibrateUtil.getInstance(context).VibrateOn(false);
- }
- }).create();
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
- mCustomDialog.show();
- }else if (app_id ==3){
- tmpDialog = this.mDialog.setTitle(context.getString(R.string.sms_title)).setApp(1);
- StringBuilder var7 = new StringBuilder();
- var7.append(context.getString(R.string.sms_notify));
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface var1, int var2) {
- var1.dismiss();
- ComponentName var3 = new ComponentName("com.zmapp.sms", "com.zmapp.sms.MainActivity");
- Intent var5 = new Intent("android.intent.action.MAIN");
- var5.addCategory("android.intent.category.DEFAULT");
- var5.addFlags(FLAG_ACTIVITY_NEW_TASK);
- var5.setComponent(var3);
- VibrateUtil.getInstance(context).VibrateOn(false);
- try {
- context.startActivity(var5);
- } catch (Exception e) {
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
- }
+ }
+
+ private static Handler mHandler = null;
+
+ private void initMyDialog(final Context context, final Contact contact, int app_id, String msg, boolean needreply) {
+ String var4 = contact == null ? "SMS" : contact.name;
+
+ if (this.mDialog == null) {
+ this.mDialog = new CustomDialog.Builder(context);
}
- }).setNegativeButton(context.getString(R.string.cancel), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface var1, int var2) {
- var1.dismiss();
- VibrateUtil.getInstance(context).VibrateOn(false);
+
+ StringBuilder var5 = new StringBuilder();
+ var5.append("===mCustomDialog ")
+ .append(mCustomDialog)
+ .append(" , appid ").append(app_id);
+
+ ICLogger.i(var5.toString());
+ if (mCustomDialog != null && mCustomDialog.isShowing() && last_message_name != null && var4 != null && last_message_name.equals(var4) && last_app_id == app_id) {
+ mCustomDialog.dismiss();
}
- }).create();
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
- mCustomDialog.show();
- }else if (app_id ==4) {
- tmpDialog = this.mDialog.setTitle("WEB"+context.getString(R.string.sms_title)).setApp(1);
- StringBuilder var7 = new StringBuilder();
- var7.append(msg);
-
- if (needreply) {
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface var1, int var2) {
- var1.dismiss();
- VibrateUtil.getInstance(context).VibrateOn(false);
- if (CoreService.getInstance() != null) {
- Runtime runtime = CoreService.getInstance().getRuntime();
- if (Config.custom_name.equals("YQ") || Config.custom_name.equals("YQ_EN")) {
- runtime.setAlarmType(Runtime.AlarmType.ALARM_MSGREAD);
- Config.setLastUnReadMessage(CoreService.getInstance(), "");
- Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
- } else {
- CoreService.getInstance().getConnection().send(protocolAPIHelper.getPushTxtReadFlagToSrvMSG(runtime));
- }
- }
- }
- }).create();
- }else{
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface var1, int var2) {
- var1.dismiss();
- VibrateUtil.getInstance(context).VibrateOn(false);
- }
- }).create();
- }
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
- mCustomDialog.show();
- } else if (app_id ==5) {
- tmpDialog = this.mDialog.setTitle(context.getString(R.string.findDev)).setApp(1);
- StringBuilder var7 = new StringBuilder();
- var7.append(msg);
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface var1, int var2) {
- var1.dismiss();
- VibrateUtil.getInstance(context).VibrateOn(false);
- stopmediaplayer();
- }
- }).create();
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
- mCustomDialog.show();
- }else if (app_id ==6) {
- tmpDialog = this.mDialog.setTitle(context.getString(R.string.notification_title)).setApp(1);
- StringBuilder var7 = new StringBuilder();
- var7.append(msg);
- mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface var1, int var2) {
- var1.dismiss();
- VibrateUtil.getInstance(context).VibrateOn(false);
- stopmediaplayer();
-
- if(msg.contains("Take Photo")) {
- String packagename = "com.eqc.camera";
- String activityName = "com.eqc.camera.TakePictureActivity";
- if (Util.installed(context, "com.ic.camera")) {
- packagename = "com.ic.camera";
- activityName = "com.ic.camera.MainActivity";
- }
- ComponentName var3 = new ComponentName(packagename, activityName);
- Intent var5 = new Intent("android.intent.action.MAIN");
- var5.addCategory("android.intent.category.DEFAULT");
- var5.addFlags(FLAG_ACTIVITY_NEW_TASK);
- var5.setComponent(var3);
- try {
- context.startActivity(var5);
- } catch (Exception e) {
- e.printStackTrace();
- ICLogger.e(e.getMessage(),e);
+
+ last_message_name = var4;
+ last_app_id = app_id;
+ CustomDialog.Builder tmpDialog;
+ if (app_id == 1) {
+ tmpDialog = this.mDialog.setTitle(context.getString(R.string.setting_title)).setApp(1);
+ StringBuilder var6 = new StringBuilder();
+ var6.append(context.getString(R.string.voiceMessage));
+ var6.append(" ");
+ var6.append(var4);
+ var6.append(context.getString(R.string.voiceMessageEnd));
+ mCustomDialog = tmpDialog.setMessage(var6.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface var1x, int var2x) {
+ var1x.dismiss();
+ ComponentName var3 = new ComponentName("com.enqualcomm.imessage", "com.enqualcomm.imessage.ui.chat.ChatActivity_");
+ Intent var5 = new Intent("android.intent.action.MAIN");
+ var5.putExtra("ACTIVITY_TYPE", 2);
+ var5.putExtra("contact", contact);
+ var5.addCategory("android.intent.category.DEFAULT");
+ var5.addFlags(FLAG_ACTIVITY_NEW_TASK);
+ var5.setComponent(var3);
+ VibrateUtil.getInstance(context).VibrateOn(false);
+ try {
+ context.startActivity(var5);
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
+
+ }
+ }).setNegativeButton(context.getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface var1, int var2) {
+ var1.dismiss();
+ VibrateUtil.getInstance(context).VibrateOn(false);
+ }
+ }).create();
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
+ mCustomDialog.show();
+ } else if (app_id == 2) {
+ tmpDialog = this.mDialog.setTitle(context.getString(R.string.hht_misscall_call)).setApp(app_id);
+ StringBuilder var7 = new StringBuilder();
+ var7.append(context.getString(R.string.hht_call_start));
+ var7.append(var4);
+ var7.append(context.getString(R.string.hht_call_end));
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface var1, int var2) {
+ var1.dismiss();
+ VibrateUtil.getInstance(context).VibrateOn(false);
+ }
+ }).create();
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
+ mCustomDialog.show();
+ } else if (app_id == 3) {
+ tmpDialog = this.mDialog.setTitle(context.getString(R.string.sms_title)).setApp(1);
+ StringBuilder var7 = new StringBuilder();
+ var7.append(context.getString(R.string.sms_notify));
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface var1, int var2) {
+ var1.dismiss();
+ ComponentName var3 = new ComponentName("com.zmapp.sms", "com.zmapp.sms.MainActivity");
+ Intent var5 = new Intent("android.intent.action.MAIN");
+ var5.addCategory("android.intent.category.DEFAULT");
+ var5.addFlags(FLAG_ACTIVITY_NEW_TASK);
+ var5.setComponent(var3);
+ VibrateUtil.getInstance(context).VibrateOn(false);
+ try {
+ context.startActivity(var5);
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
+ }
+ }).setNegativeButton(context.getString(R.string.cancel), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface var1, int var2) {
+ var1.dismiss();
+ VibrateUtil.getInstance(context).VibrateOn(false);
+ }
+ }).create();
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
+ mCustomDialog.show();
+ } else if (app_id == 4) {
+ tmpDialog = this.mDialog.setTitle("WEB" + context.getString(R.string.sms_title)).setApp(1);
+ StringBuilder var7 = new StringBuilder();
+ var7.append(msg);
+
+ if (needreply) {
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface var1, int var2) {
+ var1.dismiss();
+ VibrateUtil.getInstance(context).VibrateOn(false);
+ if (CoreService.getInstance() != null) {
+ Runtime runtime = CoreService.getInstance().getRuntime();
+ if (Config.custom_name.equals("YQ") || Config.custom_name.equals("YQ_EN")) {
+ runtime.setAlarmType(Runtime.AlarmType.ALARM_MSGREAD);
+ Config.setLastUnReadMessage(CoreService.getInstance(), "");
+ Deliver.sendLocationMSG(protocolAPIHelper.getWarningMSG(runtime));
+ } else {
+ CoreService.getInstance().getConnection().send(protocolAPIHelper.getPushTxtReadFlagToSrvMSG(runtime));
+ }
+ }
+ }
+ }).create();
+ } else {
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface var1, int var2) {
+ var1.dismiss();
+ VibrateUtil.getInstance(context).VibrateOn(false);
+ }
+ }).create();
}
- }
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
+ mCustomDialog.show();
+ } else if (app_id == 5) {
+ tmpDialog = this.mDialog.setTitle(context.getString(R.string.findDev)).setApp(1);
+ StringBuilder var7 = new StringBuilder();
+ var7.append(msg);
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface var1, int var2) {
+ var1.dismiss();
+ VibrateUtil.getInstance(context).VibrateOn(false);
+ stopmediaplayer();
+ }
+ }).create();
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
+ mCustomDialog.show();
+ } else if (app_id == 6) {
+ tmpDialog = this.mDialog.setTitle(context.getString(R.string.notification_title)).setApp(1);
+ StringBuilder var7 = new StringBuilder();
+ var7.append(msg);
+ mCustomDialog = tmpDialog.setMessage(var7.toString()).setPositiveButton(context.getString(R.string.ok), new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface var1, int var2) {
+ var1.dismiss();
+ VibrateUtil.getInstance(context).VibrateOn(false);
+ stopmediaplayer();
+
+ if (msg.contains("Take Photo")) {
+ String packagename = "com.eqc.camera";
+ String activityName = "com.eqc.camera.TakePictureActivity";
+ if (Util.installed(context, "com.ic.camera")) {
+ packagename = "com.ic.camera";
+ activityName = "com.ic.camera.MainActivity";
+ }
+ ComponentName var3 = new ComponentName(packagename, activityName);
+ Intent var5 = new Intent("android.intent.action.MAIN");
+ var5.addCategory("android.intent.category.DEFAULT");
+ var5.addFlags(FLAG_ACTIVITY_NEW_TASK);
+ var5.setComponent(var3);
+ try {
+ context.startActivity(var5);
+ } catch (Exception e) {
+ e.printStackTrace();
+ ICLogger.e(e.getMessage(), e);
+ }
+ }
+ }
+ }).create();
+ mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
+ mCustomDialog.show();
}
- }).create();
- mCustomDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
- mCustomDialog.show();
}
- }
- private void playFindDevVoice(Context context){
-
- AudioService.getInstance().play(context.getAssets(), "Campus_Life.ogg");
-
- }
- private void stopmediaplayer(){
- AudioService.getInstance().stop();
- }
- private void playNotificationVoice(Context paramContext) {
- AudioService.getInstance().play(paramContext.getAssets(), "ring_msg.mp3");
- }
-
- private void playshutdownsound(Context paramContext) {
- AudioService.getInstance().play(paramContext.getAssets(), "shutdownsound.mp3");
- }
-
-
- private void screenOn(Context paramContext) {
- final PowerManager.WakeLock wakelock = ((PowerManager)paramContext.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP| SCREEN_DIM_WAKE_LOCK, ProcessReceiver.class.getSimpleName());
- wakelock.acquire();
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- wakelock.release();
- }
- },5000);
- }
-
- @Override
- public void onReceive(Context paramContext, Intent paramIntent) {
-
- boolean isSilence;
- Contact contact;
- String str = paramIntent.getAction();
- StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append("action==");
- stringBuilder.append(str);
- ICLogger.i(stringBuilder.toString());
-
- if (CoreService.getInstance()==null)
- {
- ICLogger.i("CoreService is null skip deal with this message! "+str);
- paramContext.startService(new Intent(paramContext,CoreService.class));// protocol service
- return ;
+
+ private void playFindDevVoice(Context context) {
+
+ AudioService.getInstance().play(context.getAssets(), "Campus_Life.ogg");
+
}
- if (RESUME_ACTION.equals(str)) {
- SharPreferenceUtil.setPrefBoolean(paramContext, "key_is_resume", paramIntent.getBooleanExtra("is_resume", false));
- return;
- }else if (ACTION_MESSAGE_SENT.equals(str)) {
-
- String msgType=paramIntent.getStringExtra(KEY_MESSAGE_TYPE);
- String msgFrom=paramIntent.getStringExtra(KEY_MESSAGE_FROM);
- String msgUrl=paramIntent.getStringExtra(KEY_MESSAGE_URL);
- ICLogger.i("receive msg to send type="+msgType+", msg from = "+msgFrom+", msgUrl"+msgUrl);
- if (msgFrom==null) msgFrom="123";
- /**
- * * 1 语音—— 1.监听语音 * 2.SOS语音 * 3.扩展
- * * 2 图片—— 1.签到图片 * 2.指令图片 * 3.设备图片 * 4.扩展
- */
- if (msgType.equals("voice"))
- {
- //创建voiceConent并添加到数据
- final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,1,3);
-
- // 把voiceContent拆解成1024的分包
- Util.parseToVoicePacketSent(voiceContent);
- //trigger 分包发送
- if (CoreService.getInstance().getConnection()!=null)
- CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
- }else if (msgType.equals("pic")){
- //创建voiceConent并添加到数据
- final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,2,3);
-
- // 把voiceContent拆解成1024的分包
- Util.parseToVoicePacketSent(voiceContent);
- //trigger 分包发送
- if (CoreService.getInstance().getConnection()!=null) {
-
- //h88专用功能,拍照时检查体温心率
- if(Util.getSystemProperties("persist.sys.do_check_condition","false").equals("true")) {
- //开启测温
- if(CoreService.getInstance().getRuntime().check_stat_do_temp_test())
- TemperatureUtil.DoTempTest();
-
- Util.mSleep(5000);
- //开启测量PPG
- if(CoreService.getInstance().getRuntime().check_stat_do_ppg_test())
- HeartRateManager.triggerPPGtest();
- }
- //开启发送图片
- CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
- }
- }
- }else if (ACTION_SHUTDOWN.equals(str)) {
- playshutdownsound(paramContext);
+ private void stopmediaplayer() {
+ AudioService.getInstance().stop();
+ }
- Util.shutdown();
- return;
- }else if (ACTION_PLAYTIME.equals(str)) {
- LedUtil.setBlueLedOn(true);
+ private void playNotificationVoice(Context paramContext) {
+ AudioService.getInstance().play(paramContext.getAssets(), "ring_msg.mp3");
+ }
+
+ private void playshutdownsound(Context paramContext) {
+ AudioService.getInstance().play(paramContext.getAssets(), "shutdownsound.mp3");
+ }
+
+
+ private void screenOn(Context paramContext) {
+ final PowerManager.WakeLock wakelock = ((PowerManager) paramContext.getSystemService(Context.POWER_SERVICE)).newWakeLock(ACQUIRE_CAUSES_WAKEUP | SCREEN_DIM_WAKE_LOCK, ProcessReceiver.class.getSimpleName());
+ wakelock.acquire();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
- LedUtil.setBlueLedOn(false);
+ wakelock.release();
}
- },2000L);
- return;
- }else if (ACTION_REMOTE_CAMERA.equals(str)) {
- if (paramIntent.hasExtra("remote_number")){
- //接收拍照命令,执行拍照
- String str1 = paramIntent.getStringExtra("remote_number");
- mHandler.post(new Runnable() {
- @Override
- public void run() {
- (new CameraUtil(paramContext)).getPictur(str1);
- }
- });
- }else{
- //接收到拍照完毕命令,发送照片
- String msgFrom=paramIntent.getStringExtra("number");
- String msgUrl=paramIntent.getStringExtra("filepath");
- ICLogger.i("receive taken photo to send "+msgUrl);
- //创建voiceConent并添加到数据
- final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl,2,2);
-
-
- // 把voiceContent拆解成1024的分包
- Util.parseToVoicePacketSent(voiceContent);
- //trigger 分包发送
- if (CoreService.getInstance().getConnection()!=null) {
-
- //h88专用功能,拍照后检测体温和心率
- if(Util.getSystemProperties("persist.sys.do_check_condition","false").equals("true")) {
- //开启测温
- if(CoreService.getInstance().getRuntime().check_stat_do_temp_test())
- TemperatureUtil.DoTempTest();
-
- Util.mSleep(500);
- //开启测量PPG
- if(CoreService.getInstance().getRuntime().check_stat_do_ppg_test())
- HeartRateManager.triggerPPGtest();
- }
- //开启发送照片
- CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
+ }, 5000);
+ }
+
+ @Override
+ public void onReceive(Context paramContext, Intent paramIntent) {
+
+ boolean isSilence;
+ Contact contact;
+ String str = paramIntent.getAction();
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append("action==");
+ stringBuilder.append(str);
+ ICLogger.i(stringBuilder.toString());
+
+ if (CoreService.getInstance() == null) {
+ ICLogger.i("CoreService is null skip deal with this message! " + str);
+ paramContext.startService(new Intent(paramContext, CoreService.class));// protocol service
+ return;
}
+ if (RESUME_ACTION.equals(str)) {
+ SharPreferenceUtil.setPrefBoolean(paramContext, "key_is_resume", paramIntent.getBooleanExtra("is_resume", false));
+ return;
+ } else if (ACTION_MESSAGE_SENT.equals(str)) {
+
+ String msgType = paramIntent.getStringExtra(KEY_MESSAGE_TYPE);
+ String msgFrom = paramIntent.getStringExtra(KEY_MESSAGE_FROM);
+ String msgUrl = paramIntent.getStringExtra(KEY_MESSAGE_URL);
+ ICLogger.i("receive msg to send type=" + msgType + ", msg from = " + msgFrom + ", msgUrl" + msgUrl);
+ if (msgFrom == null) msgFrom = "123";
+ /**
+ * * 1 语音—— 1.监听语音 * 2.SOS语音 * 3.扩展
+ * * 2 图片—— 1.签到图片 * 2.指令图片 * 3.设备图片 * 4.扩展
+ */
+ if (msgType.equals("voice")) {
+ //创建voiceConent并添加到数据
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl, 1, 3);
+
+ // 把voiceContent拆解成1024的分包
+ Util.parseToVoicePacketSent(voiceContent);
+ //trigger 分包发送
+ if (CoreService.getInstance().getConnection() != null)
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
+ } else if (msgType.equals("pic")) {
+ //创建voiceConent并添加到数据
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl, 2, 3);
+
+ // 把voiceContent拆解成1024的分包
+ Util.parseToVoicePacketSent(voiceContent);
+ //trigger 分包发送
+ if (CoreService.getInstance().getConnection() != null) {
+
+ //h88专用功能,拍照时检查体温心率
+ if (Util.getSystemProperties("persist.sys.do_check_condition", "false").equals("true")) {
+ //开启测温
+ if (CoreService.getInstance().getRuntime().check_stat_do_temp_test())
+ TemperatureUtil.DoTempTest();
+
+ Util.mSleep(5000);
+ //开启测量PPG
+ if (CoreService.getInstance().getRuntime().check_stat_do_ppg_test())
+ HeartRateManager.triggerPPGtest();
+ }
+ //开启发送图片
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
+ }
+ }
+ } else if (ACTION_SHUTDOWN.equals(str)) {
+
+ playshutdownsound(paramContext);
+
+ Util.shutdown();
+ return;
+ } else if (ACTION_PLAYTIME.equals(str)) {
+ LedUtil.setBlueLedOn(true);
+ mHandler.postDelayed(new Runnable() {
+ @Override
+ public void run() {
+ LedUtil.setBlueLedOn(false);
+ }
+ }, 2000L);
+ return;
+ } else if (ACTION_REMOTE_CAMERA.equals(str)) {
+ if (paramIntent.hasExtra("remote_number")) {
+ //接收拍照命令,执行拍照
+ String str1 = paramIntent.getStringExtra("remote_number");
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ (new CameraUtil(paramContext)).getPictur(str1);
+ }
+ });
+ } else {
+ //接收到拍照完毕命令,发送照片
+ String msgFrom = paramIntent.getStringExtra("number");
+ String msgUrl = paramIntent.getStringExtra("filepath");
+ ICLogger.i("receive taken photo to send " + msgUrl);
+ //创建voiceConent并添加到数据
+ final VoiceContent voiceContent = VoiceContent.placeHolderOut(CONTACT_CATEGORY_GROUP, msgFrom, msgUrl, 2, 2);
+
+
+ // 把voiceContent拆解成1024的分包
+ Util.parseToVoicePacketSent(voiceContent);
+ //trigger 分包发送
+ if (CoreService.getInstance().getConnection() != null) {
+
+ //h88专用功能,拍照后检测体温和心率
+ if (Util.getSystemProperties("persist.sys.do_check_condition", "false").equals("true")) {
+ //开启测温
+ if (CoreService.getInstance().getRuntime().check_stat_do_temp_test())
+ TemperatureUtil.DoTempTest();
+
+ Util.mSleep(500);
+ //开启测量PPG
+ if (CoreService.getInstance().getRuntime().check_stat_do_ppg_test())
+ HeartRateManager.triggerPPGtest();
+ }
+ //开启发送照片
+ CoreService.getInstance().getConnection().DeliverCMDMessageToSystem("SentVoicePacket", "");
+ }
- }
+ }
- return;
+ return;
- }else if (DIALOG_ACTION.equals(str)) {
- if (paramIntent.hasExtra("contact")) {
- contact = (Contact) paramIntent.getParcelableExtra("contact");
- SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
- isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
- if (contact != null && !isSilence) {
- if (!DeviceInfoUtil.isTopActivity(paramContext)) {
- this.initMyDialog(paramContext, contact, 1,"",false);
- this.playNotificationVoice(paramContext);
- VibrateUtil.getInstance(paramContext).VibrateOn(true);
- }
+ } else if (DIALOG_ACTION.equals(str)) {
+ if (paramIntent.hasExtra("contact")) {
+ contact = (Contact) paramIntent.getParcelableExtra("contact");
+ SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
+ isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
+ if (contact != null && !isSilence) {
+ if (!DeviceInfoUtil.isTopActivity(paramContext)) {
+ this.initMyDialog(paramContext, contact, 1, "", false);
+ this.playNotificationVoice(paramContext);
+ VibrateUtil.getInstance(paramContext).VibrateOn(true);
+ }
- this.screenOn(paramContext);
- }
- }else if (paramIntent.hasExtra("sms")) {
- String sms = paramIntent.getStringExtra("sms");
- SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
- isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
- if (sms != null && !isSilence) {
- //if (!DeviceInfoUtil.isTopActivity(paramContext)) {
- this.initMyDialog(paramContext, null, 3,sms,false);
- this.playNotificationVoice(paramContext);
- VibrateUtil.getInstance(paramContext).VibrateOn(true);
- //}
-
- this.screenOn(paramContext);
- }
- }else if (paramIntent.hasExtra("pushtxt")) {
- String sms = paramIntent.getStringExtra("pushtxt");
- boolean needreply=false;
- if (paramIntent.hasExtra("needreply")){
- needreply= paramIntent.getBooleanExtra("needreply",false);
- }
- SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
- isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
- if (sms != null && !isSilence) {
- if (!DeviceInfoUtil.isTopActivity(paramContext)) {
- this.initMyDialog(paramContext, null, 4, sms,needreply);
+ this.screenOn(paramContext);
+ }
+ } else if (paramIntent.hasExtra("sms")) {
+ String sms = paramIntent.getStringExtra("sms");
+ SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
+ isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
+ if (sms != null && !isSilence) {
+ //if (!DeviceInfoUtil.isTopActivity(paramContext)) {
+ this.initMyDialog(paramContext, null, 3, sms, false);
this.playNotificationVoice(paramContext);
VibrateUtil.getInstance(paramContext).VibrateOn(true);
+ //}
+
+ this.screenOn(paramContext);
+ }
+ } else if (paramIntent.hasExtra("pushtxt")) {
+ String sms = paramIntent.getStringExtra("pushtxt");
+ boolean needreply = false;
+ if (paramIntent.hasExtra("needreply")) {
+ needreply = paramIntent.getBooleanExtra("needreply", false);
+ }
+ SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
+ isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
+ if (sms != null && !isSilence) {
+ if (!DeviceInfoUtil.isTopActivity(paramContext)) {
+ this.initMyDialog(paramContext, null, 4, sms, needreply);
+ this.playNotificationVoice(paramContext);
+ VibrateUtil.getInstance(paramContext).VibrateOn(true);
+ }
+
+ this.screenOn(paramContext);
+ }
+ } else if (paramIntent.hasExtra("findDev")) {
+ String finddevtxt = paramIntent.getStringExtra("findDev");
+ SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
+ isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
+ if (finddevtxt != null && !isSilence) {
+ this.initMyDialog(paramContext, null, 5, finddevtxt, false);
+ this.playFindDevVoice(paramContext);
+ VibrateUtil.getInstance(paramContext).VibrateOn(true);
+
+ this.screenOn(paramContext);
}
+ } else if (paramIntent.hasExtra("takephoto")) {
+ String takephoto = paramIntent.getStringExtra("takephoto");
+ SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
+ isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
+ if (takephoto != null && !isSilence) {
- this.screenOn(paramContext);
+ this.initMyDialog(paramContext, null, 6, takephoto, false);
+ this.playNotificationVoice(paramContext);
+ VibrateUtil.getInstance(paramContext).VibrateOn(true);
+
+ this.screenOn(paramContext);
+ }
}
- }else if (paramIntent.hasExtra("findDev")) {
- String finddevtxt = paramIntent.getStringExtra("findDev");
- SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
- isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
- if (finddevtxt != null && !isSilence) {
- this.initMyDialog(paramContext, null, 5,finddevtxt,false);
- this.playFindDevVoice(paramContext);
- VibrateUtil.getInstance(paramContext).VibrateOn(true);
-
- this.screenOn(paramContext);
- }
- }else if (paramIntent.hasExtra("takephoto")) {
- String takephoto = paramIntent.getStringExtra("takephoto");
- SharPreferenceUtil.getPrefBoolean(paramContext, "key_is_resume", false);
- isSilence = SharPreferenceUtil.getPrefBoolean(paramContext, "KEY_ISSILENCE", false);
- if (takephoto != null && !isSilence) {
-
- this.initMyDialog(paramContext, null, 6,takephoto,false);
- this.playNotificationVoice(paramContext);
- VibrateUtil.getInstance(paramContext).VibrateOn(true);
-
- this.screenOn(paramContext);
- }
- }
- }else if (ACTION_TEMP_RESULT.equals(str)) {
- double wrist_temp = paramIntent.getDoubleExtra(KEY_TEMP_WRIST, 0.0f);
- double body_temp = paramIntent.getDoubleExtra(KEY_TEMP_BODY, 0.0f);
- double tempOut = paramIntent.getDoubleExtra(KEY_TEMP_OUT, 0.0f);
- boolean byprotocol=paramIntent.getBooleanExtra(KEY_TEMP_BYPROTOCOL,false);
- if(byprotocol==false) {
- if (Config.disableWristTemp) {
- //ic68
- body_temp=wrist_temp;
- }
- ICLogger.i("Received Temperature wrist "+wrist_temp+" body "+body_temp);
- StringMessage temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp, tempOut, null);
- if (temperatureMsg != null) {
- ICLogger.i("temp 发送体温测量值 " + temperatureMsg.isFromCache());
- }
- Deliver.sendLocationMSG(temperatureMsg);
- }else{
- ICLogger.i("Skip protocol Temperature wrist "+wrist_temp+" body "+body_temp);
-
- }
- }else if (ACTION_SET_SIT_RANGE.equals(str)) {
- if (paramIntent.hasExtra( Constants.KEY_SIT_RANGE)){
- int sitrange=paramIntent.getIntExtra(Constants.KEY_SIT_RANGE,0);
- Config.setKeepSitRangeInMinutes(paramContext,sitrange);
- ICLogger.i("set KeepSitRange int "+sitrange+" minutes!");
- ICLogger.i("则重置 lastCheckSitTime 以及 lastSitCheckStepCount");
- Runtime.lastSitCheckStepCount=CoreService.getInstance().getRuntime().getTotalStepCount();
- Runtime.lastSitCheckTiimeyyyyMMddHHmmss=TimeUtil.getSystemTime3();
- }
- } else {
- //如果来电了,还有未读的消息,干脆关掉,防止影响接电话。
- if (mCustomDialog != null && mCustomDialog.isShowing()) {
- mCustomDialog.dismiss();
- }
+ } else if (ACTION_TEMP_RESULT.equals(str)) {
+ double wrist_temp = paramIntent.getDoubleExtra(KEY_TEMP_WRIST, 0.0f);
+ double body_temp = paramIntent.getDoubleExtra(KEY_TEMP_BODY, 0.0f);
+ double tempOut = paramIntent.getDoubleExtra(KEY_TEMP_OUT, 0.0f);
+ boolean byprotocol = paramIntent.getBooleanExtra(KEY_TEMP_BYPROTOCOL, false);
+ if (byprotocol == false) {
+ if (Config.disableWristTemp) {
+ //ic68
+ body_temp = wrist_temp;
+ }
+ ICLogger.i("Received Temperature wrist " + wrist_temp + " body " + body_temp);
+ StringMessage temperatureMsg = protocolAPIHelper.getTemperatureMSG(wrist_temp, body_temp, tempOut, null);
+ if (temperatureMsg != null) {
+ ICLogger.i("temp 发送体温测量值 " + temperatureMsg.isFromCache());
+ }
+ Deliver.sendLocationMSG(temperatureMsg);
+ } else {
+ ICLogger.i("Skip protocol Temperature wrist " + wrist_temp + " body " + body_temp);
- if (this.mCustomNotification != null && this.mCustomNotification.isShowing()) {
- this.mCustomNotification.dismiss();
+ }
+ } else if (ACTION_SET_SIT_RANGE.equals(str)) {
+ if (paramIntent.hasExtra(Constants.KEY_SIT_RANGE)) {
+ int sitrange = paramIntent.getIntExtra(Constants.KEY_SIT_RANGE, 0);
+ Config.setKeepSitRangeInMinutes(paramContext, sitrange);
+ ICLogger.i("set KeepSitRange int " + sitrange + " minutes!");
+ ICLogger.i("则重置 lastCheckSitTime 以及 lastSitCheckStepCount");
+ Runtime.lastSitCheckStepCount = CoreService.getInstance().getRuntime().getTotalStepCount();
+ Runtime.lastSitCheckTiimeyyyyMMddHHmmss = TimeUtil.getSystemTime3();
+ }
+ } else {
+ //如果来电了,还有未读的消息,干脆关掉,防止影响接电话。
+ if (mCustomDialog != null && mCustomDialog.isShowing()) {
+ mCustomDialog.dismiss();
+ }
+
+ if (this.mCustomNotification != null && this.mCustomNotification.isShowing()) {
+ this.mCustomNotification.dismiss();
+ }
}
- }
- }
-
- public void sendStheartRateBroadcast(Context paramContext, String actionStr, int paramInt) {
- Intent intent = new Intent();
- intent.setAction(actionStr);
- intent.putExtra("stheartRateType", paramInt);
- paramContext.sendBroadcast(intent);
- }
- public void sendSOSBroadcast(Context paramContext, String actionStr) {
- Intent intent = new Intent();
- intent.setAction(actionStr);
- paramContext.sendBroadcast(intent);
- }
+ }
+
+ public void sendStheartRateBroadcast(Context paramContext, String actionStr, int paramInt) {
+ Intent intent = new Intent();
+ intent.setAction(actionStr);
+ intent.putExtra("stheartRateType", paramInt);
+ paramContext.sendBroadcast(intent);
+ }
+
+ public void sendSOSBroadcast(Context paramContext, String actionStr) {
+ Intent intent = new Intent();
+ intent.setAction(actionStr);
+ paramContext.sendBroadcast(intent);
+ }
}
import android.net.Uri;
import android.os.Environment;
import android.os.Handler;
+import android.os.HandlerThread;
import com.enqualcomm.support.Config;
import com.enqualcomm.support.Constants;
import com.enqualcomm.support.bean.Alarm;
import com.enqualcomm.support.bean.Contact;
import com.enqualcomm.support.bean.Content;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.bean.ICLocation;
import com.enqualcomm.support.bean.Runtime;
import com.enqualcomm.support.bean.StringMessage;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.Intent.FLAG_INCLUDE_STOPPED_PACKAGES;
import static com.enqualcomm.support.Constants.ACTION_HEATR_RATE_START;
-import static com.enqualcomm.support.Constants.ACTION_REMOTE_CAMERA;
import static com.enqualcomm.support.Constants.DIALOG_ACTION;
import static com.enqualcomm.support.LocationClient.LOCATION_MODE;
import static com.enqualcomm.support.bean.Contact.GROUP_ALL;
private static final String CMDHEADER = "IW";
private static final String CMDEND = "#";
private static final String CMDSPLIT = ",";
- public static final String defaultServerIP="watch.jiai.pro";
- public static final int defaultServerPort=8090;
+ public static final String defaultServerIP = "watch.jiai.pro";
+ public static final int defaultServerPort = 8090;
+
public enum CMD_TYPE {
/*终端发起*/
AP00,//登录包
}
- private Connection mConnection=null;
- private Runtime mRuntime=null;
+ private Connection mConnection = null;
+ private Runtime mRuntime = null;
public protocol_ic(Connection connect, Runtime runtime) {
- mConnection=connect;
- mRuntime=runtime;
-
+ if (mHandler == null) {
+ HandlerThread handlerThread = new HandlerThread("ic:protocol-handler-thread");
+ handlerThread.start();
+ mHandler = new Handler(handlerThread.getLooper());
}
+ mConnection = connect;
+ mRuntime = runtime;
+ }
private StringBuffer cmdbuf = new StringBuffer();
return "";
}
- }else{
+ } else {
return "";
}
}
- private Handler mHandler=new Handler(EventLooperHandlerThread.makeLooper(protocol_ic.class.getSimpleName()));
+ private Handler mHandler = null;
/**/
- public static StringMessage genStringMessage(String cmdName, String msg){
- StringMessage sm=new StringMessage(new String[]{cmdName,msg});
+ public static StringMessage genStringMessage(String cmdName, String msg) {
+ StringMessage sm = new StringMessage(new String[]{cmdName, msg});
sm.refresh(msg);
- sm.setDate(TimeUtil.getSystemDateYYMMDD(),TimeUtil.getSystemTimeHHmmss());
+ sm.setDate(TimeUtil.getSystemDateYYMMDD(), TimeUtil.getSystemTimeHHmmss());
return sm;
}
+
/*
返回true 表示 cmd 全部解析成功
返回false表示 cmd至少有一条解析失败,失败的数据归入buffer,下一次识别接着使用
boolean iscmdComplete = false;
boolean ret = true;
String last_inCompletecmd = "";
- String cmd_msgbuf=new String(bytes);
- log("bytes.size "+bytes.length);
+ String cmd_msgbuf = new String(bytes);
+ log("bytes.size " + bytes.length);
// cmdbuf.append(cmd_msgbuf);
cmdbuf.append(cmd_msgbuf);
- log("cmdbuf.size "+cmdbuf.length() +" "+cmdbuf.toString());
+ log("cmdbuf.size " + cmdbuf.length() + " " + cmdbuf.toString());
/*
如果不是 #结尾,就认为 接收数据不全,置位。
*/
}
String[] cmdlist = cmd_msgbuf.split(CMDEND);
int listlen = cmdlist.length;
- log("listlen "+listlen);
+ log("listlen " + listlen);
/*
如果解析出来的cmdlist不是空,且数据不是完整cmd则保留 最后一条数据到last_inCompletecmd
*/
if (key == CMD_TYPE.BP28) {
//如果是BP28则 后面的数据是音频,需要保留
byte[] amrBuf;
- int amrLen = getBP28Amrlen(cmdlist[i] );
+ int amrLen = getBP28Amrlen(cmdlist[i]);
if (bytes.length > amrLen) {
handleCmd(key, cmdlist[i], bytes);
}
} else {
- handleCmd(key, cmdlist[i]);
+ handleCmd(key, cmdlist[i]);
}
}
}
cmdbuf = new StringBuffer().append(last_inCompletecmd);
return ret;
}
+
public int getBP28Amrlen(String cmd) {
String Name;
int packetLen;
- String[] msg=cmd.split(CMDSPLIT);
- if (msg.length>=6){
+ String[] msg = cmd.split(CMDSPLIT);
+ if (msg.length >= 6) {
try {
Name = msg[1];
appendIndex = msg[2];
log(stringBuffer.toString());
return packetLen;
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
- log("getBP28AmrLen","format Error");
+ } else {
+ log("getBP28AmrLen", "format Error");
}
return -1;
}
+
/*登录*/
public static StringMessage AP00(Runtime ds) {
//示例数据:IWAP00867155030001063#
- return genStringMessage(cmdMap.get(CMD_TYPE.AP00),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString());
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP00), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP00)).append(ds.IMEI()).append(CMDEND).toString());
}
//处理 登录 BP00
- public void handleBP00(Runtime runtime,String cmd){
- String[] msg=cmd.split(CMDSPLIT);
+ public void handleBP00(Runtime runtime, String cmd) {
+ String[] msg = cmd.split(CMDSPLIT);
// get Msg :IWBP00,20191229171933,8# (size)24
// 12-30 01:19:33.861 6492-6492/com.enqualcomm.support I/ICSrv.protocolAPIHelper: found cmd keyid=BP00 ,keyname=BP00 , IWBP00,20191229171933,8
- if (msg.length>=3) {
+ if (msg.length >= 3) {
log("handleBP00", "Set Datetime " + msg[1]);
log("handleBP00", "Set TimeZone " + msg[2]);
try {
ICLogger.i("===" + TimeUtil.getDefaultTimeZone());
}
- }catch (Exception e) {
+ } catch (Exception e) {
ICLogger.e(e.getMessage(), e);
}
// Set Datetime 20200505112734
// Set TimeZone 8
- }else{
- log("handleBP00","format Error");
+ } else {
+ log("handleBP00", "format Error");
}
}
//02为工作模式 ,(设防,工作模式如果为00,则代表无或未设置)
//5555: 计步步数,每次到达 9999 后重 0 开始计 (此处 9999 为示例,可以为2字节int 然后溢出归零)
//30: 翻滚次数
- return genStringMessage(cmdMap.get(CMD_TYPE.AP03),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d",abs(ds.getSignalStrength())))
- .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append(ds.isPowerConnected()?"1":"0")
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP03), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP03)).append(CMDSPLIT).append(String.format("%03d", abs(ds.getSignalStrength())))
+ .append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append(ds.isPowerConnected() ? "1" : "0")
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)
.append(ds.getTotalStepCount()).append(CMDSPLIT).append(ds.getRolltimes()).append(CMDEND).toString());
}
+
//处理 心跳 BP03
- public void handleBP03(String cmd){
+ public void handleBP03(String cmd) {
log("BP03心跳接收成功");
}
- public static StringMessage AP10(Runtime ds){
+ public static StringMessage AP10(Runtime ds) {
/**
* IWAP10080524A2232.9806N11404.9355E000.1061830323.8706000908000502,
* 00:第一个0:是否需要回复地址信息,0:不回复,1回复.
* 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#
*/
- return genStringMessage(cmdMap.get(CMD_TYPE.AP10),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate())
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP10), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP10)).append(TimeUtil.getShortDate())
.append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading())
- .append(String.format("%03d",abs(ds.getSignalStrength())))
+ .append(String.format("%03d", abs(ds.getSignalStrength())))
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)
.append(ds.getLBSData()).append(CMDSPLIT)
// 460,0,9520,3671,
// 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#
// IWAP01191230A2232.9807N11404.9355E000.1161320000.0006000910000000,460,00,9520,3671,#
- return genStringMessage(cmdMap.get(CMD_TYPE.AP01),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())
- .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d",abs(ds.getSignalStrength())))
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP01), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP01)).append(TimeUtil.getShortDate())
+ .append(ds.getGPSData()).append(TimeUtil.getShortTime()).append(ds.getGPSHeading()).append(String.format("%03d", abs(ds.getSignalStrength())))
.append(ds.getGPSLocationStarNums()).append(ds.getBattery()).append("0")
.append(ds.getProtection()).append(ds.getWorkModeStr()).append(CMDSPLIT)
.append(ds.getLBSData()).append(CMDSPLIT).append(ds.getWifiInfo()).append(CMDEND).toString());
}
//处理 定位 BP01
- public void handleBP01(String cmd){
+ public void handleBP01(String cmd) {
log("BP01定位接收成功");
}
-
/*LBS+WiFi混合定位*/
public static StringMessage AP02(Runtime ds) {
//示例数据:IWAP02,
// 4: 表示WIFI组数,
// 1|D8-24-BD-79-FA-1F|59: ssid|mac地址|信号强度,信号强度转正数:150 – abs(信号强度)
- int apsum=0;
- String wifiinfo=ds.getWifiInfo();
+ int apsum = 0;
+ String wifiinfo = ds.getWifiInfo();
if (!wifiinfo.isEmpty()) {
String[] list = wifiinfo.split("&");
apsum = list.length;
}
- ICLogger.i("Wifi ap sum "+apsum);
- return genStringMessage(cmdMap.get(CMD_TYPE.AP02),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)
+ ICLogger.i("Wifi ap sum " + apsum);
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP02), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP02)).append(CMDSPLIT)
.append(ds.getLanguage()).append(CMDSPLIT)
.append(0).append(CMDSPLIT) //为0时不回复地址
.append(ds.getLBSMultiStationData()).append(CMDSPLIT) //基站信息数据
}
//处理 定位 BP01
- public void handleBP02(String cmd){
+ public void handleBP02(String cmd) {
log("BP02定位接收成功");
}
-
- public static StringMessage APXL(String id){
+ public static StringMessage APXL(String id) {
//设备响应: IWAPXL,080835#
//080835:指令流水号
- return genStringMessage(cmdMap.get(CMD_TYPE.APXL),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL))
+ return genStringMessage(cmdMap.get(CMD_TYPE.APXL), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXL))
.append(CMDSPLIT).append(id)
.append(CMDEND).toString());
}
/**
* 测量心率
+ *
* @param cmd
* @param connection
*/
- public void handleBPXL(String cmd, Connection connection){
+ public void handleBPXL(String cmd, Connection connection) {
//IWBPXL,353456789012345,080835#
//说明:
//IW:标识符
//080835 :指令流水号
//设备响应: IWAPXL,080835#
//080835:指令流水号
- String[] list=cmd.split(CMDSPLIT);
- if (list.length==3){
- String index=list[2];
- String imei=list[1];
- ICLogger.i("Handle BPXL IMEI "+imei+",index "+index);
+ String[] list = cmd.split(CMDSPLIT);
+ if (list.length == 3) {
+ String index = list[2];
+ String imei = list[1];
+ ICLogger.i("Handle BPXL IMEI " + imei + ",index " + index);
connection.send(APXL(index));
- }else{
+ } else {
ICLogger.i("BPXL format error!");
}
}
- public static StringMessage APXY(String id){
+ public static StringMessage APXY(String id) {
//设备响应: IWAPXY,080835#
//080835:指令流水号
- return genStringMessage(cmdMap.get(CMD_TYPE.APXY),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY))
+ return genStringMessage(cmdMap.get(CMD_TYPE.APXY), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APXY))
.append(CMDSPLIT).append(id)
.append(CMDEND).toString());
}
/**
* 测量血压
+ *
* @param cmd
* @param connection
*/
- public void handleBPXY(String cmd,Connection connection){
+ public void handleBPXY(String cmd, Connection connection) {
//IWBPXY,353456789012345,080835#
//说明:
//IW:标识符
//080835 :指令流水号
//设备响应: IWAPXY,080835#
//080835:指令流水号
- String[] list=cmd.split(CMDSPLIT);
- if (list.length==3){
- String index=list[2];
- String imei=list[1];
- ICLogger.i("Handle BPXY IMEI "+imei+",index "+index);
+ String[] list = cmd.split(CMDSPLIT);
+ if (list.length == 3) {
+ String index = list[2];
+ String imei = list[1];
+ ICLogger.i("Handle BPXY IMEI " + imei + ",index " + index);
connection.send(APXY(index));
- }else{
+ } else {
ICLogger.i("BPXY format error!");
}
}
-
- public static StringMessage APJZ(String id,String BPH,String BPL,String Age,String Sex){
+ public static StringMessage APJZ(String id, String BPH, String BPL, String Age, String Sex) {
//设备响应: IWAPJZ,792997,120,85,42,1#
//792997:指令流水号
// 高压120,低压85,年龄42,1 男性
- return genStringMessage(cmdMap.get(CMD_TYPE.APJZ),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ))
+ return genStringMessage(cmdMap.get(CMD_TYPE.APJZ), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APJZ))
.append(CMDSPLIT).append(id)
.append(CMDSPLIT).append(BPH)
.append(CMDSPLIT).append(BPL)
}
/**
- *
* @param cmd
* @param connection
* @param runtime
*/
- public void handleBPJZ(String cmd,Connection connection,Runtime runtime){
+ public void handleBPJZ(String cmd, Connection connection, Runtime runtime) {
//cmdbuf.size 42 IWBPJZ,867155030001063,199600,120,85,45,1# 高压120,低压85,年龄45,男性
// cmdbuf.size 42 IWBPJZ,867155030001063,909957,120,85,42,0# 高压120,低压85,年龄42,女性
//IWBPJZ,353456789012345,080835,110,75#
//080835 :指令流水号
//设备响应: IWAPJZ,792997,120,85,42,1#
//792997:指令流水号
- String[] list=cmd.split(CMDSPLIT);
- if (list.length==7){
+ String[] list = cmd.split(CMDSPLIT);
+ if (list.length == 7) {
try {
String index = list[2];
String imei = list[1];
connection.send(APJZ(index, strBPH, strBPL, strAge, strSex));
runtime.getHRS().setXY_Ref(Integer.parseInt(strBPH), Integer.parseInt(strBPL), Integer.parseInt(strAge), Integer.parseInt(strSex));
ICLogger.i("Handle BPJZ IMEI " + imei + ",index " + index + ", BPH " + strBPH + ", BPL " + strBPL + ", Age " + strAge + ", Sex " + (strSex.equals("1") ? "男" : "女"));
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i("BPXY format error!");
}
}
-
//重启
- public static StringMessage AP18(String index){
- return genStringMessage(cmdMap.get(CMD_TYPE.AP18),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18))
+ public static StringMessage AP18(String index) {
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP18), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP18))
.append(CMDSPLIT).append(index)
.append(CMDEND).toString());
}
- public void handleBP18(Connection connection,String cmd) {
+ public void handleBP18(Connection connection, String cmd) {
// IWBP18,867155030001063,161723
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==3) {
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 3) {
connection.send(AP18(cmdlist[2]));
}
//恢复出厂设置
- public static StringMessage AP17(String index){
- return genStringMessage(cmdMap.get(CMD_TYPE.AP17),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17))
+ public static StringMessage AP17(String index) {
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP17), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP17))
.append(CMDSPLIT).append(index)
.append(CMDEND).toString());
}
- public void handleBP17(Connection connection,String cmd) {
+
+ public void handleBP17(Connection connection, String cmd) {
// IWBP17,867155030001063,161723
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==3) {
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 3) {
connection.send(AP17(cmdlist[2]));
//关机
- public static StringMessage AP31(String index){
- return genStringMessage("AP31",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))
+ public static StringMessage AP31(String index) {
+ return genStringMessage("AP31", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP31))
.append(CMDSPLIT).append(index)
.append(CMDEND).toString());
}
- public void handleBP31(Connection connection,String cmd) {
+
+ public void handleBP31(Connection connection, String cmd) {
// IWBP31,867155030001063,161723
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==3) {
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 3) {
connection.send(AP31(cmdlist[2]));
}
//设置SOS号码
- public static StringMessage AP12(String index,String phNum1,String phNum2,String phNum3){
- return genStringMessage("AP12",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12))
+ public static StringMessage AP12(String index, String phNum1, String phNum2, String phNum3) {
+ return genStringMessage("AP12", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP12))
.append(CMDSPLIT).append(index)
.append(CMDSPLIT).append(phNum1)
.append(CMDSPLIT).append(phNum2)
}
//设置SOS号码
- public void handleBP12(Connection connection,String cmd,Runtime runtime){
+ public void handleBP12(Connection connection, String cmd, Runtime runtime) {
// IWBP12,353456789012345,080835,135XXXXXXXX,135XXXXXXXX,135XXXXXXXX#
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length>=3){
- String index=cmdlist[2];
- String phNum1=cmdlist.length==3?"":cmdlist[3];
- String phNum2=cmdlist.length>3?(cmdlist.length==4?"":cmdlist[4]):"";
- String phNum3=(cmdlist.length>4)?(cmdlist.length==5? "":cmdlist[5]):"";
- ICLogger.i(new StringBuffer().append("get Emegency Numbs "+phNum1+","+phNum2+","+phNum3).toString());
- connection.send(AP12(index,phNum1,phNum2,phNum3));
-
- ArrayList<Contact> contactArray=new ArrayList<Contact>();
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length >= 3) {
+ String index = cmdlist[2];
+ String phNum1 = cmdlist.length == 3 ? "" : cmdlist[3];
+ String phNum2 = cmdlist.length > 3 ? (cmdlist.length == 4 ? "" : cmdlist[4]) : "";
+ String phNum3 = (cmdlist.length > 4) ? (cmdlist.length == 5 ? "" : cmdlist[5]) : "";
+ ICLogger.i(new StringBuffer().append("get Emegency Numbs " + phNum1 + "," + phNum2 + "," + phNum3).toString());
+ connection.send(AP12(index, phNum1, phNum2, phNum3));
+
+ ArrayList<Contact> contactArray = new ArrayList<Contact>();
// if(Config.custom_branch_name.equals("AK")){
//
// contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", "07522312120"));
// if (!phNum2.isEmpty())
// contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum2));
// }else {
- if (!phNum1.isEmpty())
- contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", phNum1));
- if (!phNum2.isEmpty())
- contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum2));
- if (!phNum3.isEmpty())
- contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum3));
+ if (!phNum1.isEmpty())
+ contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos1", phNum1));
+ if (!phNum2.isEmpty())
+ contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos2", phNum2));
+ if (!phNum3.isEmpty())
+ contactArray.add(new Contact(Contact.CATEGORY_SOS, "sos3", phNum3));
// }
- runtime.getDbHelper().saveContacts(contactArray,false,false,false,false,false,true);
- }else{
+ runtime.getDbHelper().saveContacts(contactArray, false, false, false, false, false, true);
+ } else {
ICLogger.i(" BP12 format error!");
}
}
- public static StringMessage AP14(String index,String[] phnumbs){
- return genStringMessage("AP14",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14))
+ public static StringMessage AP14(String index, String[] phnumbs) {
+ return genStringMessage("AP14", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP14))
.append(CMDSPLIT).append(index)
.append(CMDSPLIT).append(phnumbs[0])
.append(CMDSPLIT).append(phnumbs[1])
.append(CMDSPLIT).append(phnumbs[9])
.append(CMDEND).toString());
}
+
//设置通讯录,白名单(10个)
- public void handleBP14(Connection connection,String cmd , Runtime runtime){
+ public void handleBP14(Connection connection, String cmd, Runtime runtime) {
// IWBP14,867155030001063,357444,9b44529b|13554820016,,,,,,,,,
/**
* IWBP14,353456789012345,080835,
* D3590D54|135xxxxxxxxxx,
* D3590D54|135xxxxxxxxxx#
*/
- String[] cmdlist=cmd.split(CMDSPLIT);
- String[] phnums=new String[]{"","","","","","","","","",""};
- StringBuffer sb=new StringBuffer().append("recv phone Numbs ");
- if (cmdlist.length>=3){
- switch (cmdlist.length){
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ String[] phnums = new String[]{"", "", "", "", "", "", "", "", "", ""};
+ StringBuffer sb = new StringBuffer().append("recv phone Numbs ");
+ if (cmdlist.length >= 3) {
+ switch (cmdlist.length) {
case 13:
- phnums[9]=cmdlist[12];
+ phnums[9] = cmdlist[12];
sb.append(phnums[9]).append(",");
case 12:
- phnums[8]=cmdlist[11];
+ phnums[8] = cmdlist[11];
sb.append(phnums[8]).append(",");
case 11:
- phnums[7]=cmdlist[10];
+ phnums[7] = cmdlist[10];
sb.append(phnums[7]).append(",");
case 10:
- phnums[6]=cmdlist[9];
+ phnums[6] = cmdlist[9];
sb.append(phnums[6]).append(",");
case 9:
- phnums[5]=cmdlist[8];
+ phnums[5] = cmdlist[8];
sb.append(phnums[5]).append(",");
case 8:
- phnums[4]=cmdlist[7];
+ phnums[4] = cmdlist[7];
sb.append(phnums[4]).append(",");
case 7:
- phnums[3]=cmdlist[6];
+ phnums[3] = cmdlist[6];
sb.append(phnums[3]).append(",");
case 6:
- phnums[2]=cmdlist[5];
+ phnums[2] = cmdlist[5];
sb.append(phnums[2]).append(",");
case 5:
- phnums[1]=cmdlist[4];
+ phnums[1] = cmdlist[4];
sb.append(phnums[1]).append(",");
case 4:
- phnums[0]=cmdlist[3];
+ phnums[0] = cmdlist[3];
sb.append(phnums[0]).append(",");
}
- String index=cmdlist[2];
+ String index = cmdlist[2];
ICLogger.i(sb.toString());
- connection.send(AP14(index,phnums));
- ArrayList<Contact> contactArray=new ArrayList<Contact>();
+ connection.send(AP14(index, phnums));
+ ArrayList<Contact> contactArray = new ArrayList<Contact>();
- if(Config.custom_name.equals("YT")) {
+ if (Config.custom_name.equals("YT")) {
ICLogger.i("=====add hotline 96885 ");
contactArray.add(new Contact(Contact.CATEGORY_CALL, runtime.getContextProxy().context.getResources().getString(R.string.hotline), "96885"));
}
- for (int i=0; i< phnums.length;i++){
- String[] tmp= phnums[i].split("\\|");
- if (tmp.length==2){
- String name= Util.decodeUnicode2Utf8(tmp[0]);
- String phonem=tmp[1];
- ICLogger.i("phnums["+i+"]="+phnums[i]+",split = "+tmp.length+" , name="+name+",-"+phonem);
- contactArray.add(new Contact(Contact.CATEGORY_CALL,name,phonem));
- }else{
- ICLogger.i("phnums["+i+"]="+phnums[i]+",split = "+tmp.length);
+ for (int i = 0; i < phnums.length; i++) {
+ String[] tmp = phnums[i].split("\\|");
+ if (tmp.length == 2) {
+ String name = Util.decodeUnicode2Utf8(tmp[0]);
+ String phonem = tmp[1];
+ ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length + " , name=" + name + ",-" + phonem);
+ contactArray.add(new Contact(Contact.CATEGORY_CALL, name, phonem));
+ } else {
+ ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length);
}
}
// contactArray.add(new Contact(Contact.CATEGORY_CARE,"CARE","666"));
// contactArray.add(new Contact(Contact.CATEGORY_VOLTE,"VOLTE","666"));
- runtime.getDbHelper().saveContacts(contactArray,false,false,true,false,false,false);
+ runtime.getDbHelper().saveContacts(contactArray, false, false, true, false, false, false);
- }else{
+ } else {
ICLogger.i(" BP14 format error!");
}
}
-
- public static StringMessage AP85(Runtime ds,String cmddata){
+ public static StringMessage AP85(Runtime ds, String cmddata) {
//示例数据:IWAP49,68##
- return genStringMessage("AP85",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85))
+ return genStringMessage("AP85", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP85))
.append(CMDSPLIT).append(cmddata)
.append(CMDEND).toString());
}
+
//设置闹钟
- public void handleBP85(String cmd , Connection connection,Runtime runtime){
+ public void handleBP85(String cmd, Connection connection, Runtime runtime) {
// IWBP85,867155030001063,155312,1,1,0235,12,1,1
// IWBP85,867155030002145,945166,1,0,
// IWBP85,867155030001064,265960,1,1,1130,,1,1
//3 表示久坐提醒
//多组闹钟之间用”@”符号分隔
- String imei="",cmdindex="0"/*指令流水号*/;
- int all_alarmswitch=0 /*总开关 1为开,0 为关*/,
- alarmswitch=0 /*1为开,0 为关*/,
- alarmcount=0 /*表示闹钟个数*/;
- String alarmtime="";//0900表示早上09:00
- int alarmtype=1; //1表示吃药提醒 , 2 表示喝水提醒 ,3 表示久坐提醒
- String repeat="";// 135表示周一周三周五,使用24小时制
- String[] datalist= cmd.split("@");
- ArrayList<Alarm> alarmlist=new ArrayList<>();
- if (datalist.length >0){
- for (int i =0 ; i< datalist.length;i++){
- String [] cmdarglist=datalist[i].split(",");
-
- if (i == 0){
- if (cmdarglist.length == 9){
+ String imei = "", cmdindex = "0"/*指令流水号*/;
+ int all_alarmswitch = 0 /*总开关 1为开,0 为关*/,
+ alarmswitch = 0 /*1为开,0 为关*/,
+ alarmcount = 0 /*表示闹钟个数*/;
+ String alarmtime = "";//0900表示早上09:00
+ int alarmtype = 1; //1表示吃药提醒 , 2 表示喝水提醒 ,3 表示久坐提醒
+ String repeat = "";// 135表示周一周三周五,使用24小时制
+ String[] datalist = cmd.split("@");
+ ArrayList<Alarm> alarmlist = new ArrayList<>();
+ if (datalist.length > 0) {
+ for (int i = 0; i < datalist.length; i++) {
+ String[] cmdarglist = datalist[i].split(",");
+
+ if (i == 0) {
+ if (cmdarglist.length == 9) {
try {
imei = cmdarglist[1];
cmdindex = cmdarglist[2];
.toString()
);
alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));
- }catch (Exception e) {
+ } catch (Exception e) {
ICLogger.e(e.getMessage(), e);
}
- }else if (cmdarglist.length == 5) {
- try {
- imei = cmdarglist[1];
- cmdindex = cmdarglist[2];
- all_alarmswitch = Integer.parseInt(cmdarglist[3]);
- alarmcount = Integer.parseInt(cmdarglist[4]);
- }catch (Exception e) {
- ICLogger.e(e.getMessage(), e);
- }
- }else{
+ } else if (cmdarglist.length == 5) {
+ try {
+ imei = cmdarglist[1];
+ cmdindex = cmdarglist[2];
+ all_alarmswitch = Integer.parseInt(cmdarglist[3]);
+ alarmcount = Integer.parseInt(cmdarglist[4]);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
+ }
+ } else {
log("data len is too small!");
}
- }else{
- if (cmdarglist.length == 4){
+ } else {
+ if (cmdarglist.length == 4) {
try {
alarmtime = cmdarglist[0];
repeat = cmdarglist[1];
);
alarmlist.add(new Alarm("ST" + alarmtime.substring(0, 2) + "." + alarmtime.substring(2), "W" + repeat, "CON", alarmswitch == 1 ? "ON" : "OFF", "闹铃"));
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
log("data len is too small!");
}
}
//IWBP85,867155030002145,410385,1,0,#
- String replacement=new StringBuilder("IWBP85,").append(imei).append(",").toString();
- String replycmd = cmd.replace(replacement,"");
- ICLogger.i("gen reply "+replacement+" "+replycmd);
- connection.send(AP85(runtime,replycmd));
+ String replacement = new StringBuilder("IWBP85,").append(imei).append(",").toString();
+ String replycmd = cmd.replace(replacement, "");
+ ICLogger.i("gen reply " + replacement + " " + replycmd);
+ connection.send(AP85(runtime, replycmd));
}
// }
-
-
- public static byte[] AP07(String packetTime,int count,int index,int datalen,byte[] amrdata){
+ public static byte[] AP07(String packetTime, int count, int index, int datalen, byte[] amrdata) {
//IWAP07,20140818064408,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
//说明:
//IW:标识符
//如果设备回复确认数据包接收失败状态,则重复发送上一个数据包
- String sb=new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP07))
+ String sb = new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP07))
.append(CMDSPLIT).append(packetTime)
.append(CMDSPLIT).append(count)
.append(CMDSPLIT).append(index)
.append(CMDSPLIT).append(datalen)
.append(CMDSPLIT).toString();
- byte[] sentbuf=new byte[sb.length()+datalen+1];
- System.arraycopy(sb.getBytes(),0,sentbuf,0,sb.length());
- System.arraycopy(amrdata,0,sentbuf,sb.length(),datalen);
- sentbuf[sb.length()+datalen]='#';
+ byte[] sentbuf = new byte[sb.length() + datalen + 1];
+ System.arraycopy(sb.getBytes(), 0, sentbuf, 0, sb.length());
+ System.arraycopy(amrdata, 0, sentbuf, sb.length(), datalen);
+ sentbuf[sb.length() + datalen] = '#';
return sentbuf;
}
- public void handleBP07(String cmd , Connection connection ){
+ public void handleBP07(String cmd, Connection connection) {
//平台响应: IWBP07,20140818064408,6,1,1#
//20140818064408:设备语音时间,yyyyMMddHHmmss 格式的年月日时分秒
//6:语音包分包总数
//1:当前设备收到的是第几个包
//1:表示服务器接受数据成功,0表示服务器接受数据失败
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==5){
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 5) {
try {
String time = cmdlist[1];
int packetCount = Integer.parseInt(cmdlist[2]);
}
//发送消息,再次检查要发送的语音包,确认其发送完毕
connection.DeliverCMDMessageToSystem("SentVoicePacket", "SentVoicePacket");
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i(" BP07 Format error!");
}
}
-
- public static StringMessage AP33(String cmdindex,int workMode){
+ public static StringMessage AP33(String cmdindex, int workMode) {
//IWAP33,080835,1#
//080835:指令流水号
//1:设置信息,供服务器同步
- return genStringMessage("AP33",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33))
+ return genStringMessage("AP33", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP33))
.append(CMDSPLIT).append(cmdindex)
.append(CMDSPLIT).append(workMode)
.append(CMDEND).toString());
}
//设置工作模式
- public void handleBP33(Connection connection,Runtime runtime,String cmd){
+ public void handleBP33(Connection connection, Runtime runtime, String cmd) {
// IWBP33,867155030001063,560555,1
// IW:标识符
// 080835:指令流水号
// 1:设备工作模式,1:正常模式,2:省电模式,3:紧急模式
- String[] cmdlist=cmd.split(",");
- if (cmdlist.length == 4){
+ String[] cmdlist = cmd.split(",");
+ if (cmdlist.length == 4) {
- log("work mode "+cmdlist[3]);
+ log("work mode " + cmdlist[3]);
try {
int mod = Integer.parseInt(cmdlist[3]);
int Cycle = 900;
Config.setLocationCycle(runtime.getContextProxy().context, Cycle);
runtime.getLocationInstance().setLocation_cycle(Cycle);
runtime.getLocationInstance().setWorkingMod(mod);
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
// CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());
//此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。
}
- public static StringMessage AP34(String cmdindex,int workMode){
+ public static StringMessage AP34(String cmdindex, int workMode) {
//IWAP34,588854,1#
//080835:指令流水号
//8:模式
- return genStringMessage("AP34",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34))
+ return genStringMessage("AP34", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP34))
.append(CMDSPLIT).append(cmdindex)
.append(CMDSPLIT).append(workMode)
.append(CMDEND).toString());
}
//设置自定义工作模式
- public void handleBP34(Connection connection,Runtime runtime,String cmd){
+ public void handleBP34(Connection connection, Runtime runtime, String cmd) {
// IWBP34,867155030001063,588854,8,900,1#
// IW:标识符
// 080835:指令流水号
// 1:设备工作模式,1:正常模式,2:省电模式,3:紧急模式
- String[] cmdlist=cmd.split(",");
- if (cmdlist.length == 6){
+ String[] cmdlist = cmd.split(",");
+ if (cmdlist.length == 6) {
- log("work mode "+cmdlist[3]);
+ log("work mode " + cmdlist[3]);
try {
int mod = Integer.parseInt(cmdlist[3]);
int Cycle = Integer.parseInt(cmdlist[4]);
runtime.getLocationInstance().setWorkingMod(mod);
// CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());
//此处设置好配置后,会在LocationClient通过消息开始执行及时定位操作。
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
}
}
- public void handleBP40(Connection connection,Runtime runtime,String cmd){
+
+ public void handleBP40(Connection connection, Runtime runtime, String cmd) {
// IWBP40,353456789012345,080835,XXXXXXXXXXXXXX#
// IW:标识符
// XXXXXXXXXXXX : 表示文字内容GB2312编码
- String[] cmdlist=cmd.split(",");
- if (cmdlist.length == 4){
- String cmdindex=cmdlist[2];
- String txtmsg=cmdlist[3];
- StringBuilder sb=new StringBuilder();
- runtime.PushtxtMsg_srv_index=cmdindex;//给回复AP94用
+ String[] cmdlist = cmd.split(",");
+ if (cmdlist.length == 4) {
+ String cmdindex = cmdlist[2];
+ String txtmsg = cmdlist[3];
+ StringBuilder sb = new StringBuilder();
+ runtime.PushtxtMsg_srv_index = cmdindex;//给回复AP94用
sb.append(cmdindex).append(CMDSPLIT).append(TimeUtil.getSystemTimeyyyyMMddHHmmss()).append(CMDSPLIT).append(txtmsg);
- if (Config.custom_name.equals("VitracK")){
+ if (Config.custom_name.equals("VitracK")) {
- }else{
+ } else {
// txtmsg = Util.decodeUnicode2Utf8(txtmsg);
txtmsg = Util.UrlGB2312ToUTF8(txtmsg);
}
- StringMessage msg=AP40(cmdindex,1);
+ StringMessage msg = AP40(cmdindex, 1);
//设定当前工作模式及循环频率
connection.send(msg);
- ICLogger.i("received Txt Msg "+txtmsg);
- if(!Config.noPushTxtReadReply) {
+ ICLogger.i("received Txt Msg " + txtmsg);
+ if (!Config.noPushTxtReadReply) {
Config.setLastUnReadMessage(runtime.getContextProxy().context, sb.toString());
- runtime.getContextProxy().sendMsgBroadcast(txtmsg,3);//msgType 3需要回复,0不需要回复
- }else{
- runtime.getContextProxy().sendMsgBroadcast(txtmsg,0);//msgType 3需要回复,0不需要回复
+ runtime.getContextProxy().sendMsgBroadcast(txtmsg, 3);//msgType 3需要回复,0不需要回复
+ } else {
+ runtime.getContextProxy().sendMsgBroadcast(txtmsg, 0);//msgType 3需要回复,0不需要回复
}
runtime.getContextProxy().saveMstToSMSDB(txtmsg);
- }else{
+ } else {
ICLogger.i("BP40 format error!");
}
}
- public static StringMessage AP40(String cmdindex,int success){
+
+ public static StringMessage AP40(String cmdindex, int success) {
// IWAP40,080835,1#
// 080835:指令流水号
// 1:表示设备接受数据成功,0表示设备接受数据失败
- return genStringMessage("AP40",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40))
+ return genStringMessage("AP40", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP40))
.append(CMDSPLIT).append(cmdindex)
.append(CMDSPLIT).append(success)
.append(CMDEND).toString());
/**
* 心率上传,返回协议字串
+ *
* @param ds
* @return
*/
- public static StringMessage AP49(Runtime ds){
+ public static StringMessage AP49(Runtime ds) {
//示例数据:IWAP49,68##
- return genStringMessage(cmdMap.get(CMD_TYPE.AP49),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49))
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP49), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP49))
.append(CMDSPLIT).append(ds.getHRS().getPPG())
.append(CMDEND).toString());
}
-
-
/**
* 返回上传心率血压的协议字串
+ *
* @param ds
* @return
*/
- public static StringMessage APHT(Runtime ds){
+ public static StringMessage APHT(Runtime ds) {
//IWAPHT,60,130,85#
//说明:
//IW:标识符
//85 : 血压低压 [舒张压]
//平台响应: IWBPHT#
//表示平台已接收,可不作响应
- return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHT), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))
.append(CMDSPLIT).append(ds.getHRS().getPPG())
.append(CMDSPLIT).append(ds.getHRS().getBPH())
.append(CMDSPLIT).append(ds.getHRS().getBPL())
.append(CMDEND).toString());
}
- public static StringMessage APHT(int ppg,int bph,int bpl){
+
+ public static StringMessage APHT(int ppg, int bph, int bpl) {
//IWAPHT,60,130,85#
//说明:
//IW:标识符
//85 : 血压低压 [舒张压]
//平台响应: IWBPHT#
//表示平台已接收,可不作响应
- return genStringMessage(cmdMap.get(CMD_TYPE.APHT),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHT), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHT))
.append(CMDSPLIT).append(ppg)
.append(CMDSPLIT).append(bph)
.append(CMDSPLIT).append(bpl)
//立即定位反馈
- public static StringMessage AP16(String cmdindex){
+ public static StringMessage AP16(String cmdindex) {
//IWAP16,080835#
//080835:指令流水号
- return genStringMessage(cmdMap.get(CMD_TYPE.AP16),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16))
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP16), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP16))
.append(CMDSPLIT).append(cmdindex)
.append(CMDEND).toString());
}
+
// 立即定位指令(长链接有效)
- public void handleBP16(Connection connection,Runtime runtime,String cmd){
+ public void handleBP16(Connection connection, Runtime runtime, String cmd) {
//示例数据:IWBP16,867155030001063,335386
// IWBP16,353456789012345,080835#
// 说明:
// 353456789012345:IMEI号,设备唯一ID
// 080835 :指令流水号
String[] cmdlist = cmd.split(",");
- if(cmdlist.length==3){
- log("imei "+cmdlist[1]+", cmdindex "+cmdlist[2]);
+ if (cmdlist.length == 3) {
+ log("imei " + cmdlist[1] + ", cmdindex " + cmdlist[2]);
connection.send(AP16(cmdlist[2]));
- }else{
+ } else {
log("error BP16 format");
}
}
/*通过基站获取时间和坐标*/
- public static StringMessage APTM(Runtime ds){
+ public static StringMessage APTM(Runtime ds) {
//示例数据:IWAPTM,460,0,9750,3613#
//说明:
//IW:标识符
//9750: LAC
//3613: CID
- return genStringMessage(cmdMap.get(CMD_TYPE.APTM),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM))
+ return genStringMessage(cmdMap.get(CMD_TYPE.APTM), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTM))
.append(CMDSPLIT).append(ds.getLocationInstance().getMCC())
.append(CMDSPLIT).append(ds.getLocationInstance().getMNC())
.append(CMDSPLIT).append(ds.getLocationInstance().getLAC())
}
- public void handleBPTM(String cmd){
+ public void handleBPTM(String cmd) {
//平台响应: IWBPTM,20160225090909,22.123456,113.654321#
//返回时间,格式为:yyyyMMddHHmmss ,为UTC0 时间
//经纬度保留六位小数,若没取到则返回 0
- String[] list=cmd.split(CMDSPLIT);
+ String[] list = cmd.split(CMDSPLIT);
- if(list.length==4){
+ if (list.length == 4) {
- String time=list[1];
- String lat=list[2];
- String lon=list[3];
- ICLogger.i("BPTM , time="+time+", lat="+lat+", lon="+lon);
- }else{
+ String time = list[1];
+ String lat = list[2];
+ String lon = list[3];
+ ICLogger.i("BPTM , time=" + time + ", lat=" + lat + ", lon=" + lon);
+ } else {
ICLogger.i("BPTM format error");
}
}
- public static StringMessage AP15(String index){
+ public static StringMessage AP15(String index) {
//IWAP15, 080835#
//080835:指令流水号
- return genStringMessage("AP15",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15))
+ return genStringMessage("AP15", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP15))
.append(CMDSPLIT).append(index)
.append(CMDEND).toString());
}
//设置定位周期
- public void handleBP15(String cmd ,Connection connection,Runtime runtime){
+ public void handleBP15(String cmd, Connection connection, Runtime runtime) {
// IWBP15, 353456789012345, 080835, 30#
// 353456789012345:IMEI号,设备唯一ID
// 080835 :指令流水号
// 30: 表示频率为30分钟
- String[] list=cmd.split(CMDSPLIT);
+ String[] list = cmd.split(CMDSPLIT);
- if(list.length==4){
- String index=list[2];
- String time=list[3];
+ if (list.length == 4) {
+ String index = list[2];
+ String time = list[3];
connection.send(AP15(index));
- ICLogger.i("BP15 , 定位周期="+time+"秒");
+ ICLogger.i("BP15 , 定位周期=" + time + "秒");
try {
Config.setLocationMode(runtime.getContextProxy().context, ICLocation.CUSTOM_MOD8_GPS);
- Config.setLocationCycle(runtime.getContextProxy().context, Integer.parseInt(time) );
+ Config.setLocationCycle(runtime.getContextProxy().context, Integer.parseInt(time));
runtime.getLocationInstance().setWorkingMod(Config.getLocationMode(runtime.getContextProxy().context));
runtime.getLocationInstance().setLocation_cycle(Config.getLocationCycle(runtime.getContextProxy().context));
//set AlarmCycle and trigger Location
CoreService.getInstance().setLocationAlarm(runtime.getLocationInstance().getWorkingMod());
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i("BP15 format error");
}
}
-
-
-
-
/*语音下行反馈*/
public static StringMessage AP28(String name, String msg, int packagecount, int currentpackageindex, int received_success) {
//示例数据:IWAP28,D3590D54,xxxx,6,1,1#
- return genStringMessage("AP28",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28))
+ return genStringMessage("AP28", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP28))
.append(CMDSPLIT).append(name)
.append(CMDSPLIT).append(msg)
.append(CMDSPLIT).append(packagecount)
}
//处理 BP28 语音消息
- public void handleBP28(Connection connection,String cmd,Runtime runtime,byte[] bytes) {
+ public void handleBP28(Connection connection, String cmd, Runtime runtime, byte[] bytes) {
//log("handleBP28 msg"+cmd);
/**
* IWBP28, D3590D54,XXXX,6,1,1024,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX#
int packetLen;
byte[] packetData;
- String[] msg= cmd.split(CMDSPLIT);
- if (msg.length>=6){
+ String[] msg = cmd.split(CMDSPLIT);
+ if (msg.length >= 6) {
try {
Name = msg[1];
connection.DeliverCMDMessageToSystem("NewVoice", amrFilepath);//通知下面线程状态变化
}
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
- log("handleBP28","format Error");
+ } else {
+ log("handleBP28", "format Error");
// connection.send(genStringMessage("AP28",AP28(Name,appendIndex,packetCount,currentId,0)));
}
}
//白名单开关(下行协议号:BP84,响应:AP84)
- public static StringMessage AP84(String index,int success){
+ public static StringMessage AP84(String index, int success) {
//设备响应: IWAP80,080835,1#
//080835:指令流水号
//1:表示设备执行成功,0 表示设备执行失败
- return genStringMessage("AP84",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84))
+ return genStringMessage("AP84", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP84))
.append(CMDSPLIT).append(index)
.append(CMDSPLIT).append(success)
.append(CMDEND).toString());
}
- public void handleBP84(String cmd,Connection connection){
+ public void handleBP84(String cmd, Connection connection) {
//示例:
//IWBP84,353456789012345,080835,1#
//说明:
//353456789012345:IMEI号,设备唯一ID
//080835 :指令流水号
//1: 表示白名单开,0 表示白名单关
- String[] list=cmd.split(CMDSPLIT);
+ String[] list = cmd.split(CMDSPLIT);
- if (list.length==4){
- String index=list[2];
- String whitelist_switch=list[3];
- connection.send(AP84(index,1));
+ if (list.length == 4) {
+ String index = list[2];
+ String whitelist_switch = list[3];
+ connection.send(AP84(index, 1));
- if (whitelist_switch.equals("1")){
- Util.setSystemProperties("persist.sys.whitelist.enable","true");
- }else{
- Util.setSystemProperties("persist.sys.whitelist.enable","false");
+ if (whitelist_switch.equals("1")) {
+ Util.setSystemProperties("persist.sys.whitelist.enable", "true");
+ } else {
+ Util.setSystemProperties("persist.sys.whitelist.enable", "false");
}
- ICLogger.i("收到服务器指令:白名单"+(whitelist_switch.equals("1")?"开":"关"));
+ ICLogger.i("收到服务器指令:白名单" + (whitelist_switch.equals("1") ? "开" : "关"));
- }else{
+ } else {
ICLogger.i("BP84 format error!");
}
}
//17.绑定解绑(下行协议号:BP68,响应:AP68)
- public static StringMessage AP68(String index,String cmd){
+ public static StringMessage AP68(String index, String cmd) {
//设备响应: IWAP86, 080835,1#
//080835:指令流水号
- return genStringMessage("AP86",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68))
+ return genStringMessage("AP86", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP68))
.append(CMDSPLIT).append(index)
.append(CMDSPLIT).append(cmd)
.append(CMDEND).toString());
}
- public void handleBP68(String cmd,Connection connection,Runtime runtime){
+ public void handleBP68(String cmd, Connection connection, Runtime runtime) {
//示例:
//IWBP68,353456789012345,080835,1#
//080835 :指令流水号
//1 : 表示设备为激活状态(绑定成功) 0:表示设备为未激活状态(解绑成功)
- String[] list=cmd.split(CMDSPLIT);
+ String[] list = cmd.split(CMDSPLIT);
- if (list.length==4){
- String index=list[2];
- String type=list[3];
- connection.send(AP68(index,type));
- ICLogger.i("收到服务器消息:"+(type.equals("1")?"绑定成功 ":"未激活或者解绑"));
- if (Config.custom_name.equals("YQ")||Config.custom_name.equals("YQ_EN")) {//AK-YQ
+ if (list.length == 4) {
+ String index = list[2];
+ String type = list[3];
+ connection.send(AP68(index, type));
+ ICLogger.i("收到服务器消息:" + (type.equals("1") ? "绑定成功 " : "未激活或者解绑"));
+ if (Config.custom_name.equals("YQ") || Config.custom_name.equals("YQ_EN")) {//AK-YQ
if (type.equals("1")) {
WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);
// runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success), 2);
- Util.ShowToast(runtime,runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success));
- Config.setNeedAntiOff(runtime.getContextProxy().context,true);
- Config.setNeedCutOff(runtime.getContextProxy().context,true);
+ Util.ShowToast(runtime, runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success));
+ Config.setNeedAntiOff(runtime.getContextProxy().context, true);
+ Config.setNeedCutOff(runtime.getContextProxy().context, true);
runtime.setNeedAntioff(true);
runtime.setNeddReportCutoff(true);
} else {
WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);
runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_unbind_success), 2);
- Config.setNeedAntiOff(runtime.getContextProxy().context,false);
- Config.setNeedCutOff(runtime.getContextProxy().context,false);
+ Config.setNeedAntiOff(runtime.getContextProxy().context, false);
+ Config.setNeedCutOff(runtime.getContextProxy().context, false);
runtime.setNeedAntioff(false);
runtime.setNeddReportCutoff(false);
//1 分钟后重置
public void run() {
Util.doMasterClear(runtime.getContextProxy().context);
}
- },5000);
+ }, 5000);
}
}
- }else{
+ } else {
ICLogger.i("BP86 format error!");
}
}
-
//17.设置心率/血压测量周期(下行协议号:BP86,响应:AP86)
- public static StringMessage AP86(String index){
+ public static StringMessage AP86(String index) {
//设备响应: IWAP86, 080835#
//080835:指令流水号
- return genStringMessage("AP86",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86))
+ return genStringMessage("AP86", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP86))
.append(CMDSPLIT).append(index)
.append(CMDEND).toString());
}
- public void handleBP86(String cmd,Connection connection,Runtime runtime){
+ public void handleBP86(String cmd, Connection connection, Runtime runtime) {
//示例:
//IWBP86, 353456789012345, 080835,1,720#
//1: 表示心率周期;2 :表示血压周期
//720: 表示720分钟
- String[] list=cmd.split(CMDSPLIT);
+ String[] list = cmd.split(CMDSPLIT);
- if (list.length==5){
- String index=list[2];
- String type=list[3];
- String cycle=list[4];
+ if (list.length == 5) {
+ String index = list[2];
+ String type = list[3];
+ String cycle = list[4];
connection.send(AP86(index));
- ICLogger.i("收到服务器指令:设置"+(type.equals("1")?"心率周期 ":"血压周期 ")+cycle+"分钟");
+ ICLogger.i("收到服务器指令:设置" + (type.equals("1") ? "心率周期 " : "血压周期 ") + cycle + "分钟");
try {
//发送重置PPGCycle的广播,会在CoreServer里面执行
intent.setFlags(FLAG_INCLUDE_STOPPED_PACKAGES);
intent.setFlags(FLAG_ACTIVITY_NEW_TASK);
runtime.getContextProxy().sendBrodcast(ACTION_HEATR_RATE_START, intent);
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i("BP86 format error!");
}
}
//IWBP87,http://cn.map20000.com/physicalReport.html?lang=zh-CN&imeis=866671044898063#
- public static StringMessage AP87(){
+ public static StringMessage AP87() {
//设备响应: IWAP86, 080835#
//080835:指令流水号
- return genStringMessage("AP87",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP87))
+ return genStringMessage("AP87", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP87))
.append(CMDEND).toString());
}
- public void handleBP87(String cmd,Connection connection,Runtime runtime){
+ public void handleBP87(String cmd, Connection connection, Runtime runtime) {
//IWBP87,http://cn.map20000.com/physicalReport.html?lang=zh-CN&imeis=866671044898063#
- String[] list=cmd.split(CMDSPLIT);
+ String[] list = cmd.split(CMDSPLIT);
- if (list.length==2){
- String furl=list[1];//.replace("#","");
- ICLogger.i("收到服务器指令 BP87:Qrcode url "+furl);
+ if (list.length == 2) {
+ String furl = list[1];//.replace("#","");
+ ICLogger.i("收到服务器指令 BP87:Qrcode url " + furl);
// connection.send(AP87());
try {
- String qrfilepath=Util.getLogfilePath(runtime,TimeUtil.getSystemDateYYMMDD());
- Util.setSystemProperties(Config.KeyQRURIFILE,qrfilepath);
- FileOutputStream fos=new FileOutputStream(new File(qrfilepath));
+ String qrfilepath = Util.getLogfilePath(runtime, TimeUtil.getSystemDateYYMMDD());
+ Util.setSystemProperties(Config.KeyQRURIFILE, qrfilepath);
+ FileOutputStream fos = new FileOutputStream(new File(qrfilepath));
fos.write(furl.getBytes());
fos.close();
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i("BP87 format error!");
}
}
- public static StringMessage AP88(String index){
+
+ public static StringMessage AP88(String index) {
//设备响应: IWAP88, 080835#
//080835:指令流水号
- return genStringMessage("AP88",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88))
+ return genStringMessage("AP88", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP88))
.append(CMDSPLIT).append(index)
.append(CMDEND).toString());
}
- public static void handleBP88(String cmd,Connection connection){
+ public static void handleBP88(String cmd, Connection connection) {
// IWBP88,080835#
- String[] list=cmd.split(CMDSPLIT);
+ String[] list = cmd.split(CMDSPLIT);
- if (list.length==2){
- String index=list[1];
+ if (list.length == 2) {
+ String index = list[1];
connection.send(AP88(index));
ICLogger.i("收到服务器消息:查询设备");
- }else{
+ } else {
ICLogger.i("BP88 format error!");
}
}
//18.18.设置心率/血压阀值(下行协议号:BP89,响应:AP89)
- public static StringMessage AP89(String index){
+ public static StringMessage AP89(String index) {
//设备响应: IWAP89, 080835#
//080835:指令流水号
- return genStringMessage("AP89",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89))
+ return genStringMessage("AP89", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP89))
.append(CMDSPLIT).append(index)
.append(CMDEND).toString());
}
- public void handleBP89(String cmd,Connection connection){
+ public void handleBP89(String cmd, Connection connection) {
//示例:
//IWBP89, 353456789012345, 080835,50,90,80,90,110,140#
//90: 低压阀值,低压高于该阀值上传血压,如果未设置,则留空
//110: 高压阀值,高压低于该阀值上传血压,如果未设置,则留空
//140: 高压阀值,高压高于该阀值上传血压,如果未设置,则留空
- String[] list=cmd.split(CMDSPLIT);
- if (list.length==9){
- String index=list[2];
- String PPGH=list[3];
- String PPGL=list[4];
- String BPH_H=list[5];
- String BPH_L=list[6];
- String BPL_H=list[7];
- String BPL_L=list[8];
+ String[] list = cmd.split(CMDSPLIT);
+ if (list.length == 9) {
+ String index = list[2];
+ String PPGH = list[3];
+ String PPGL = list[4];
+ String BPH_H = list[5];
+ String BPH_L = list[6];
+ String BPL_H = list[7];
+ String BPL_L = list[8];
connection.send(AP89(index));
-
- ICLogger.i("收到服务器指令:心率/血压阀值 "+PPGH+","+PPGL+","+BPH_H+","+BPH_L+","+BPL_H+","+BPL_L);
- }else{
+ ICLogger.i("收到服务器指令:心率/血压阀值 " + PPGH + "," + PPGL + "," + BPH_H + "," + BPH_L + "," + BPL_H + "," + BPL_L);
+ } else {
ICLogger.i("BP89 format error!");
}
}
//体温间隔测量 (后台测试体温)(下行协议号:BPTE,响应:APTE)
- public static StringMessage APTE(String index,int freq){
+ public static StringMessage APTE(String index, int freq) {
//设备响应: IWAPTE,080835,60#
//080835:指令流水号
//1:表示设备接受数据成功,0表示设备接受数据失败
- return genStringMessage("APTE",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE))
+ return genStringMessage("APTE", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTE))
.append(CMDSPLIT).append(index)
.append(CMDSPLIT).append(freq)
.append(CMDEND).toString());
}
- public void handleBPTE(String cmd,Connection connection,Runtime runtime){
+ public void handleBPTE(String cmd, Connection connection, Runtime runtime) {
//示例:
//IWBPTE,353456789012345,080835,60#
//353456789012345:IMEI号,设备唯一ID
//080835 :指令流水号
//60 : 上传间隔,单位分钟(60分钟上传一次体温,终端收到后立即开始测量一次并重置定时器)
- String[] list=cmd.split(CMDSPLIT);
- if (list.length==4){
+ String[] list = cmd.split(CMDSPLIT);
+ if (list.length == 4) {
try {
String index = list[2];
String freqstr = list[3];
CoreService.getInstance().setTempAlarm();
- if(runtime.check_stat_do_temp_test()) TemperatureUtil.doTempTestInThread();
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ if (runtime.check_stat_do_temp_test()) TemperatureUtil.doTempTestInThread();
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i("BPTE format error!");
}
}
//体温上行(上行协议号:APTP,响应:BPTP)
- public static StringMessage APTP(double wrist_temp,double body_temp,double tempout){
+ public static StringMessage APTP(double wrist_temp, double body_temp, double tempout) {
//设备: IWAPTP,36.3,33,132#
//IW:标识符
//APTP : 命令字符
//35.3:测量体温 (摄氏度)
//33,132:温补用的参数,此处不用,可以用0 来代替。 目前是代表的腕温,室外温度
- return genStringMessage(cmdMap.get(CMD_TYPE.APTP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP))
- .append(CMDSPLIT).append(String.format("%1$.1f",body_temp))
- .append(CMDSPLIT).append(String.format("%1$.1f",wrist_temp))
- .append(CMDSPLIT).append(String.format("%1$.1f",tempout))
+ return genStringMessage(cmdMap.get(CMD_TYPE.APTP), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTP))
+ .append(CMDSPLIT).append(String.format("%1$.1f", body_temp))
+ .append(CMDSPLIT).append(String.format("%1$.1f", wrist_temp))
+ .append(CMDSPLIT).append(String.format("%1$.1f", tempout))
.append(CMDEND).toString());
}
- public void handleBPTP(){
+ public void handleBPTP() {
ICLogger.d("BPTP 服务器收到体温数据!");
}
- public static StringMessage APX1(String id){
+ public static StringMessage APX1(String id) {
//设备响应: IWAPX1, 080835#
//080835:指令流水号
- return genStringMessage("APX1",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1))
+ return genStringMessage("APX1", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APX1))
.append(CMDSPLIT).append(id)
.append(CMDEND).toString());
}
/**
- *
* @param cmd
* @param connection
* @param runtime
*/
- public void handleBPX1(String cmd,Connection connection,Runtime runtime){
+ public void handleBPX1(String cmd, Connection connection, Runtime runtime) {
//IWBPX1,353456789012345,080835,2,1,-3,0#
//说明:
// IW:标识符
// 1:高压修正值
// -3:低压修正值
// 0:血氧修正值
- String[] list=cmd.split(CMDSPLIT);
- if (list.length==7){
- String index=list[2];
- String imei=list[1];
- String strXL=list[3];
- String strBPH=list[4];
- String strBPL=list[5];
- String strSpO2=list[6];
+ String[] list = cmd.split(CMDSPLIT);
+ if (list.length == 7) {
+ String index = list[2];
+ String imei = list[1];
+ String strXL = list[3];
+ String strBPH = list[4];
+ String strBPL = list[5];
+ String strSpO2 = list[6];
connection.send(APX1(index));
.append(spo2_adjust).append(CMDSPLIT).toString();
Config.setPPG_ECG_adjustValue(ShareAdjValue);
ICLogger.i("Handle BPX1 IMEI " + imei + ",index " + index + ", BPH " + strBPH + ", BPL " + strBPL + ", PPG " + strXL + ", Sp02 " + strSpO2 + " , Shared Adjust Value " + ShareAdjValue);
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i("BPX1 format error!");
}
}
-
- public static StringMessage APS4(String id){
+ public static StringMessage APS4(String id) {
//设备响应: IWAPS4,080835#
//080835:指令流水号
- return genStringMessage("APS4",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4))
+ return genStringMessage("APS4", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APS4))
.append(CMDSPLIT).append(id)
.append(CMDEND).toString());
}
/**
* 主要为久坐设置提醒时长。
+ *
* @param cmd
* @param connection
* @param runtime
*/
- public void handleBPS4(String cmd,Connection connection,Runtime runtime){
+ public void handleBPS4(String cmd, Connection connection, Runtime runtime) {
//IWBPS4,353456789012345,080835,1|1234567|0900|1100|180, 2|1234567|0900|1100|180, 1|1234567|0900|1100|180#
//说明:
// IW:标识符
// 1|1234567|0900|1100|180:类型(1久坐,2喝水)|重复周期|开始时间|结束时间|时间间隔(单位秒)
// 重复周期、开始结束时间格式 参考BP85闹钟设置,
//#:结尾标识符
- String[] list=cmd.split(CMDSPLIT);
- if (list.length>=4){
+ String[] list = cmd.split(CMDSPLIT);
+ if (list.length >= 4) {
- String index=list[2];
- String imei=list[1];
+ String index = list[2];
+ String imei = list[1];
connection.send(APS4(index));
String setting1;
- switch(list.length){
+ switch (list.length) {
case 10:
- setting1=list[9];
- ICLogger.i("set 7th alarm "+setting1);
+ setting1 = list[9];
+ ICLogger.i("set 7th alarm " + setting1);
case 9:
- setting1=list[8];
- ICLogger.i("set 6th alarm "+setting1);
+ setting1 = list[8];
+ ICLogger.i("set 6th alarm " + setting1);
case 8:
- setting1=list[7];
- ICLogger.i("set 5th alarm "+setting1);
+ setting1 = list[7];
+ ICLogger.i("set 5th alarm " + setting1);
case 7:
- setting1=list[6];
- ICLogger.i("set 4th alarm "+setting1);
+ setting1 = list[6];
+ ICLogger.i("set 4th alarm " + setting1);
case 6:
- setting1=list[5];
- ICLogger.i("set 3rd alarm "+setting1);
+ setting1 = list[5];
+ ICLogger.i("set 3rd alarm " + setting1);
case 5:
- setting1=list[4];
- ICLogger.i("set 2nt alarm "+setting1);
+ setting1 = list[4];
+ ICLogger.i("set 2nt alarm " + setting1);
case 4:
- setting1=list[3];
- ICLogger.i("set 1st alarm "+setting1);
+ setting1 = list[3];
+ ICLogger.i("set 1st alarm " + setting1);
break;
}
- ICLogger.i("Handle BPX1 IMEI "+imei+",index "+index+", get "+(list.length-3) +" settings");
- }else{
+ ICLogger.i("Handle BPX1 IMEI " + imei + ",index " + index + ", get " + (list.length - 3) + " settings");
+ } else {
ICLogger.i("BPX1 format error!");
}
}
- public static StringMessage APHP(Runtime ds){
+ public static StringMessage APHP(Runtime ds) {
//IWAPHP,60,130,85,95,90, , , , , , , , #
//IW:标识符
//APHT : 命令字符
//95:血氧
//90:血糖
// 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空
- return genStringMessage(cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHP), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))
.append(CMDSPLIT).append(ds.getHRS().getPPG())
.append(CMDSPLIT).append(ds.getHRS().getBPH())
.append(CMDSPLIT).append(ds.getHRS().getBPL())
.append(CMDSPLIT)
.append(CMDEND).toString());
}
- public static StringMessage APHP(int ppg,int bph, int bpl, int spo2){
+
+ public static StringMessage APHP(int ppg, int bph, int bpl, int spo2) {
//IWAPHP,60,130,85,95,90, , , , , , , , #
//IW:标识符
//APHT : 命令字符
//95:血氧
//90:血糖
// 本消息适用所有终端,其中需要每项指标不一定全部有值,如果无值,则留空
- return genStringMessage(cmdMap.get(CMD_TYPE.APHP),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))
+ return genStringMessage(cmdMap.get(CMD_TYPE.APHP), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APHP))
.append(CMDSPLIT).append(ppg)
.append(CMDSPLIT).append(bph)
.append(CMDSPLIT).append(bpl)
}
- public void handleBPHP(){
+ public void handleBPHP() {
ICLogger.i("服务器收到APHP 心率血压血氧 !");
}
- public static StringMessage APDE(String id){
+ public static StringMessage APDE(String id) {
/***
* 示例:
- * 设备响应: IWAPDE,080835#
+ * 设备响应: IWAPDE,080835#
* 080835:指令流水号
* 说明: 本消息适用所有终端
*/
- return genStringMessage("APDE",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDE))
+ return genStringMessage("APDE", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDE))
.append(CMDSPLIT).append(id)
.append(CMDEND).toString());
}
- public void handleBPDE(Connection connection,String cmd,Runtime runtime){
+ public void handleBPDE(Connection connection, String cmd, Runtime runtime) {
/***
* 示例:
* IWBPDE,867400020316612,853676,0
* 080835:指令流水号
* 说明: 本消息适用所有终端
*/
- String[] list=cmd.split(CMDSPLIT);
- if (list.length==4){
+ String[] list = cmd.split(CMDSPLIT);
+ if (list.length == 4) {
- String index=list[2];
- String msg=list[3];
+ String index = list[2];
+ String msg = list[3];
connection.send(APDE(index));
try {
if (Integer.parseInt(msg) == 0) {
// Util.ShowToast(runtime,"");
runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_cross_boundary), 0);
}
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i("BPDE format error!");
}
}
- public static StringMessage APDG(String id){
- return genStringMessage("APDG",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDG))
+
+ public static StringMessage APDG(String id) {
+ return genStringMessage("APDG", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDG))
.append(CMDSPLIT).append(id)
.append(CMDEND).toString());
}
- public void handleBPDG(Connection connection,String cmd,Runtime runtime){
+ public void handleBPDG(Connection connection, String cmd, Runtime runtime) {
/**
* 示例:
* IWBPDG,353456789012345,1,30.0,37.3 #
* 37.3: 高温阀值
* #:结尾标识符
* */
- String[] list=cmd.split(CMDSPLIT);
- if (list.length==6){
+ String[] list = cmd.split(CMDSPLIT);
+ if (list.length == 6) {
try {
String index = list[2];
ICLogger.i("Handle BPDG index " + index + ", 体温报警阈值关 ");
Config.needTemperature_abnormal_alarm = false;
}
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i("BPDG format error!");
}
}
* @param amrdata 文件分包内容数据
* @return
*/
- public static byte[] APTU(String packetTime,int filetype, int datatype ,int count,int index,int datalen,byte[] amrdata){
+ public static byte[] APTU(String packetTime, int filetype, int datatype, int count, int index, int datalen, byte[] amrdata) {
/**
* 10.设备录音图片(设备上行)(上行协议:APTU,响应:BPTU)
* 示例:
* 收到设备回复确认数据包接收成功状态后,继续开始依次上传下一个数据包。。。。。。
* 如果设备回复确认数据包接收失败状态,则重复发送上一个数据包
*/
- String sb=new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTU))
+ String sb = new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTU))
.append(CMDSPLIT)
.append(CMDSPLIT).append(packetTime)
.append(CMDSPLIT).append(filetype)
.append(CMDSPLIT).append(datatype)
.append(CMDSPLIT).append(count)
.append(CMDSPLIT).append(index)
- .append(CMDSPLIT).append(datalen*2)
+ .append(CMDSPLIT).append(datalen * 2)
.append(CMDSPLIT).toString();
- byte[] sentbuf=new byte[sb.length()+datalen*2+1];
- byte[] amrdata2=Util.bytesToHexString(amrdata).getBytes();
- System.arraycopy(sb.getBytes(),0,sentbuf,0,sb.length());
- System.arraycopy(amrdata2,0,sentbuf,sb.length(),datalen*2);
- sentbuf[sb.length()+datalen*2]='#';
+ byte[] sentbuf = new byte[sb.length() + datalen * 2 + 1];
+ byte[] amrdata2 = Util.bytesToHexString(amrdata).getBytes();
+ System.arraycopy(sb.getBytes(), 0, sentbuf, 0, sb.length());
+ System.arraycopy(amrdata2, 0, sentbuf, sb.length(), datalen * 2);
+ sentbuf[sb.length() + datalen * 2] = '#';
return sentbuf;
}
- public void handleBPTU(String cmd , Connection connection ){
+ public void handleBPTU(String cmd, Connection connection) {
/***
* 平台响应
* IWBPTU,6654111,080835,1,1,6,1,1#
* 1:当前包序号
* 1:成功 (0:失败)
*/
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==8){
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 8) {
try {
String time = cmdlist[2];
String filetype = cmdlist[3];
}
//发送消息,再次检查要发送的语音包,确认其发送完毕
connection.DeliverCMDMessageToSystem("SentVoicePacket", "SentBPFilePacket");
- }catch (Exception e){
- ICLogger.e(e.getMessage(),e);
+ } catch (Exception e) {
+ ICLogger.e(e.getMessage(), e);
}
- }else{
+ } else {
ICLogger.i(" BPTU Format error!");
}
}
- public static StringMessage APSL(String date,int deepsleep,int lightsleep,int score){
+ public static StringMessage APSL(String date, int deepsleep, int lightsleep, int score) {
/***
* 示例:
* IWAPSL,20200803,240,120,90#
* 换算分数后发送到服务器
* #:结束符
*/
- String sb=new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APSL))
+ String sb = new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APSL))
.append(CMDSPLIT).append(date)
.append(CMDSPLIT).append(deepsleep)
.append(CMDSPLIT).append(lightsleep)
.append(CMDSPLIT).append(score)
.append(CMDEND).toString();
- return genStringMessage(cmdMap.get(CMD_TYPE.APSL),sb);
+ return genStringMessage(cmdMap.get(CMD_TYPE.APSL), sb);
}
- public static StringMessage AP46(String id,String cmd)
- {
- return genStringMessage(cmdMap.get(CMD_TYPE.AP46),new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP46))
+ public static StringMessage AP46(String id, String cmd) {
+ return genStringMessage(cmdMap.get(CMD_TYPE.AP46), new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP46))
.append(CMDSPLIT).append(id)
.append(CMDSPLIT).append(cmd)
.append(CMDEND).toString());
}
- public void handleBP46(String cmd , Connection connection,Runtime runtime) {
+ public void handleBP46(String cmd, Connection connection, Runtime runtime) {
/***
* IWBP46,353456789012345,080835,1,[参数]#
* 说明:
* 1 成功 0失败
* # 结尾标识符
*/
- String[] cmdlist=cmd.split(CMDSPLIT);
+ String[] cmdlist = cmd.split(CMDSPLIT);
- if (cmdlist.length>=4 ){
- String imei=cmdlist[1];
- String id=cmdlist[2];
- String cdd=cmdlist[3];
- if (cmdlist.length==5) {
+ if (cmdlist.length >= 4) {
+ String imei = cmdlist[1];
+ String id = cmdlist[2];
+ String cdd = cmdlist[3];
+ if (cmdlist.length == 5) {
String tmp = cmdlist[4];
}
- connection.send(AP46(id,cdd));
+ connection.send(AP46(id, cdd));
Context context = mRuntime.getContextProxy().context.getApplicationContext();
if (cdd.equals("1")) {
//delay 启动
}
});
- }else if(cdd.equals("2")){
+ } else if (cdd.equals("2")) {
Intent intent = new Intent();
intent.setAction(DIALOG_ACTION);
intent.putExtra("takephoto", "Take Photo !");
context.sendBroadcast(intent);
}
- }else{
+ } else {
ICLogger.i(" BP46 Format error!");
}
}
- public static StringMessage APDH(String id,String cmd)
- {
- return genStringMessage("APDH",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDH))
+ public static StringMessage APDH(String id, String cmd) {
+ return genStringMessage("APDH", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APDH))
.append(CMDSPLIT).append(id)
.append(CMDSPLIT).append(cmd)
.append(CMDEND).toString());
}
- public void handleBPDH( Connection connection,Runtime runtime,String cmd) {
+ public void handleBPDH(Connection connection, Runtime runtime, String cmd) {
/***
* IWBPDH,353456789012345,080835,1,[参数]#
* 说明:
* # 结尾标识符
*/
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==5){
- String imei=cmdlist[1];
- String id=cmdlist[2];
- String cdd=cmdlist[3];
- String tmp=cmdlist[4];
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 5) {
+ String imei = cmdlist[1];
+ String id = cmdlist[2];
+ String cdd = cmdlist[3];
+ String tmp = cmdlist[4];
- tmp=tmp.replace(CMDEND,"").trim();
+ tmp = tmp.replace(CMDEND, "").trim();
- if (tmp.isEmpty()) tmp="15";
- connection.send(APDH(id,cdd));
+ if (tmp.isEmpty()) tmp = "15";
+ connection.send(APDH(id, cdd));
if (cdd.equals("1")) {
//delay 启动
// Context context = mRuntime.getContextProxy().context.getApplicationContext();
- CoreService.getInstance().DevliverStringMessage("StartMonitor",tmp);
+ CoreService.getInstance().DevliverStringMessage("StartMonitor", tmp);
}
- }else{
+ } else {
ICLogger.i(" BPDH Format error!");
}
}
- public static StringMessage APTQ(Runtime runtime)
- {
+ public static StringMessage APTQ(Runtime runtime) {
/**
* IWAPTQ,460,0,9520,3671,0#
* APTQ : 命令字符
//或者仅仅使用 locale = Locale.getDefault(); 不需要考虑接口 deprecated(弃用)问题
Locale locale = Locale.getDefault();
String lang = locale.getLanguage() + "-" + locale.getCountry();
- int language=0;
- if(!lang.contains("zh"))
- {
- language=1;
+ int language = 0;
+ if (!lang.contains("zh")) {
+ language = 1;
}
- return genStringMessage("APTQ",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTQ))
+ return genStringMessage("APTQ", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APTQ))
.append(CMDSPLIT).append(runtime.getLocationInstance().getMCC())
.append(CMDSPLIT).append(runtime.getLocationInstance().getMNC())
.append(CMDSPLIT).append(runtime.getLocationInstance().getLAC())
}
- public void handleBPTQ( Connection connection,Runtime runtime,String cmd) {
+ public void handleBPTQ(Connection connection, Runtime runtime, String cmd) {
/***
*
* IWBPTQ,20-10-11,19:32:02,6674,32,27,22,30,20-10-12,19:32:02,6674,32,27,22,30,20-10-13,19:32:02,6674,32,27,22,30,53575C71533A
* 47:局部雷阵雨
*/
- log("BPTQ "+cmd);
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==23){
-
- StringBuilder sb=new StringBuilder();
- StringBuilder msg=new StringBuilder();
- for(int i=0;i<3;i++) {
- String DayTime = cmdlist[1+i*7] + " " + cmdlist[2+i*7];
- String date= "20"+cmdlist[1+i*7].trim();
- String weather_name = Util.decodeUnicode2Utf8(cmdlist[3+i*7].trim());
- String weather_id = cmdlist[4+i*7];
- String temp_current = cmdlist[5+i*7];
- String temp_high = cmdlist[6+i*7];
- String temp_low = cmdlist[7+i*7];
-
- sb.append(" "+DayTime);
- sb.append(",天气:"+weather_name);
- sb.append(",ID "+weather_id);
- sb.append(",当前温度 "+temp_current);
- sb.append(",最高温度 "+temp_high);
- sb.append(",最低温度 "+temp_low);
+ log("BPTQ " + cmd);
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 23) {
+
+ StringBuilder sb = new StringBuilder();
+ StringBuilder msg = new StringBuilder();
+ for (int i = 0; i < 3; i++) {
+ String DayTime = cmdlist[1 + i * 7] + " " + cmdlist[2 + i * 7];
+ String date = "20" + cmdlist[1 + i * 7].trim();
+ String weather_name = Util.decodeUnicode2Utf8(cmdlist[3 + i * 7].trim());
+ String weather_id = cmdlist[4 + i * 7];
+ String temp_current = cmdlist[5 + i * 7];
+ String temp_high = cmdlist[6 + i * 7];
+ String temp_low = cmdlist[7 + i * 7];
+
+ sb.append(" " + DayTime);
+ sb.append(",天气:" + weather_name);
+ sb.append(",ID " + weather_id);
+ sb.append(",当前温度 " + temp_current);
+ sb.append(",最高温度 " + temp_high);
+ sb.append(",最低温度 " + temp_low);
sb.append("\n");
msg.append(date);
- msg.append(","+weather_name);
- msg.append(","+weather_id);
- msg.append(","+temp_current);
- msg.append(","+temp_high);
- msg.append(","+temp_low);
+ msg.append("," + weather_name);
+ msg.append("," + weather_id);
+ msg.append("," + temp_current);
+ msg.append("," + temp_high);
+ msg.append("," + temp_low);
msg.append(";");
}
- String City=Util.decodeUnicode2Utf8(cmdlist[22]);
+ String City = Util.decodeUnicode2Utf8(cmdlist[22]);
- ICLogger.i(City+" \n"+sb.toString());
+ ICLogger.i(City + " \n" + sb.toString());
- msg.insert(0,City+";");
- String weatherstr=msg.toString();
- if (weatherstr.endsWith(";"))
- {
- weatherstr=weatherstr.substring(0,weatherstr.lastIndexOf(";"));
+ msg.insert(0, City + ";");
+ String weatherstr = msg.toString();
+ if (weatherstr.endsWith(";")) {
+ weatherstr = weatherstr.substring(0, weatherstr.lastIndexOf(";"));
}
- Intent intent=new Intent(Constants.ACTION_WEATHER_RECEIVED);
- intent.putExtra(Constants.KEY_Weather,weatherstr);
- ICLogger.i("send Broadcast "+ Constants.ACTION_WEATHER_RECEIVED +"\n"+weatherstr+"\n");
+ Intent intent = new Intent(Constants.ACTION_WEATHER_RECEIVED);
+ intent.putExtra(Constants.KEY_Weather, weatherstr);
+ ICLogger.i("send Broadcast " + Constants.ACTION_WEATHER_RECEIVED + "\n" + weatherstr + "\n");
CoreService.getInstance().sendBroadcast(intent);
- }else{
+ } else {
ICLogger.i(" BPTQ Format error!");
}
}
-
- public static StringMessage AP94( ){
+ public static StringMessage AP94() {
/***
* 15确认已读文字(上行协议号:AP94,响应:BP94)
* 示例:
*/
//在UI逻辑中,只要有处理就都是已经阅读。所以不存在取消阅读的说法。
- return genStringMessage(cmdMap.get(protocol_ic.CMD_TYPE.AP94),new StringBuffer(CMDHEADER).append(cmdMap.get(protocol_ic.CMD_TYPE.AP94))
+ return genStringMessage(cmdMap.get(protocol_ic.CMD_TYPE.AP94), new StringBuffer(CMDHEADER).append(cmdMap.get(protocol_ic.CMD_TYPE.AP94))
.append(CMDSPLIT).append(Runtime.PushtxtMsg_srv_index)
.append(CMDSPLIT).append("1")
.append(CMDEND).toString());
}
- public static StringMessage APAT(String id,String cmd)
- {
- return genStringMessage("APAT",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APAT))
+ public static StringMessage APAT(String id, String cmd) {
+ return genStringMessage("APAT", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APAT))
.append(CMDSPLIT).append(id)
.append(CMDSPLIT).append(cmd)
.append(CMDEND).toString());
* @param runtime
* @param cmd
*/
- public void handleBPAT( Connection connection,Runtime runtime,String cmd) {
+ public void handleBPAT(Connection connection, Runtime runtime, String cmd) {
/***
* IWBPAT,353456789012345,080835,1#
* 说明:是否提示表带是否连接的开关,即剪断报警开关
* 1: 剪断开关状态(实际上与下行的命令一致)
*/
- log("BPAT "+cmd);
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==4){
+ log("BPAT " + cmd);
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 4) {
- String imei=cmdlist[1];
- String id=cmdlist[2];
- String cmdid=cmdlist[3];
- connection.send(APAT(id,cmdid));
- if(cmdid.trim().equals("1")){
+ String imei = cmdlist[1];
+ String id = cmdlist[2];
+ String cmdid = cmdlist[3];
+ connection.send(APAT(id, cmdid));
+ if (cmdid.trim().equals("1")) {
WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);
// runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success), 2);
- Util.ShowToast(runtime,runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success));
- Config.setNeedAntiOff(runtime.getContextProxy().context,true);
- Config.setNeedCutOff(runtime.getContextProxy().context,true);
+ Util.ShowToast(runtime, runtime.getContextProxy().context.getResources().getString(R.string.alarm_lock_success));
+ Config.setNeedAntiOff(runtime.getContextProxy().context, true);
+ Config.setNeedCutOff(runtime.getContextProxy().context, true);
runtime.setNeedAntioff(true);
runtime.setNeddReportCutoff(true);
} else {
WakeLockUtil.ScreenOnWakeLockTemperary(runtime.getContextProxy().context);
runtime.getContextProxy().sendMsgBroadcast(runtime.getContextProxy().context.getResources().getString(R.string.alarm_unbind_success), 2);
- Config.setNeedAntiOff(runtime.getContextProxy().context,false);
- Config.setNeedCutOff(runtime.getContextProxy().context,false);
+ Config.setNeedAntiOff(runtime.getContextProxy().context, false);
+ Config.setNeedCutOff(runtime.getContextProxy().context, false);
runtime.setNeedAntioff(false);
runtime.setNeddReportCutoff(false);
}
- }else{
+ } else {
ICLogger.i(" BPAT Format error!");
}
}
- public static StringMessage APCH(int charging)
- {
- return genStringMessage("APCH",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APCH))
+ public static StringMessage APCH(int charging) {
+ return genStringMessage("APCH", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APCH))
.append(CMDSPLIT).append(charging)
.append(CMDEND).toString());
}
-
- public static StringMessage APBT(String id,String cycle)
- {
- return genStringMessage("APBT",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APBT))
+ public static StringMessage APBT(String id, String cycle) {
+ return genStringMessage("APBT", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APBT))
.append(CMDSPLIT).append(id)
.append(CMDSPLIT).append(cycle)
.append(CMDEND).toString());
* @param runtime
* @param cmd
*/
- public void handleBPBT( Connection connection,Runtime runtime,String cmd) {
+ public void handleBPBT(Connection connection, Runtime runtime, String cmd) {
/***
* IWBPBT,353456789012345,080835,1#
* 说明:设置蓝牙扫描周期,单位时间分钟
* 1: 剪断开关状态(实际上与下行的命令一致)
*/
- log("BPBT "+cmd);
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==4){
- String id=cmdlist[2];
- String cycle=cmdlist[3].replace("#","");
- connection.send(APBT(id,cycle));
-
- if(Util.isNumeric(cycle)){
- int intcycle=Integer.parseInt(cycle);
- Config.setBleScanCycle(runtime.getContextProxy().context,intcycle);
- runtime.bleInfo.bleScanCycle=intcycle;
- ICLogger.i("设置蓝牙扫描周期 "+intcycle+" 秒");
+ log("BPBT " + cmd);
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 4) {
+ String id = cmdlist[2];
+ String cycle = cmdlist[3].replace("#", "");
+ connection.send(APBT(id, cycle));
+
+ if (Util.isNumeric(cycle)) {
+ int intcycle = Integer.parseInt(cycle);
+ Config.setBleScanCycle(runtime.getContextProxy().context, intcycle);
+ runtime.bleInfo.bleScanCycle = intcycle;
+ ICLogger.i("设置蓝牙扫描周期 " + intcycle + " 秒");
CoreService.getInstance().setBleScanAlarm(intcycle);
- }else{
+ } else {
ICLogger.i(" BPBT Format error!");
}
- }else{
+ } else {
ICLogger.i(" BPBT Format error!");
}
}
* IWAPBR,IMEI,yyyyMMddHHmmss,beaconCount,major0,minor0,mac0,rssi0,major1,minor1,mac1,rssi1...#
*/
if (runtime.bleInfo.btScanResult.size() > 0) {
- StringBuffer sb=new StringBuffer();
+ StringBuffer sb = new StringBuffer();
sb.append(runtime.bleInfo.btScanResult.size());
- for(String it:runtime.bleInfo.btScanResult){
+ for (String it : runtime.bleInfo.btScanResult) {
sb.append(CMDSPLIT).append(it);
}
return genStringMessage("APBR", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APBR))
.append(CMDSPLIT).append(sb.toString())
.append(CMDEND).toString());
- }else{
+ } else {
return null;
}
}
- public static StringMessage APBS(String id,String cycle)
- {
- return genStringMessage("APBS",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APBS))
+
+ public static StringMessage APBS(String id, String cycle) {
+ return genStringMessage("APBS", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APBS))
.append(CMDSPLIT).append(id)
.append(CMDSPLIT).append(cycle)
.append(CMDEND).toString());
}
- public void handleBPBS( Connection connection,Runtime runtime,String cmd) {
+
+ public void handleBPBS(Connection connection, Runtime runtime, String cmd) {
/***
* IWBPBS,353456789012345,080835,150&151#
* 说明:设置蓝牙扫描绑定的 major id
* 080835:指令流水号
* 1: 成功,0失败
*/
- log("BPBS "+cmd);
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==4){
- String id=cmdlist[2];
- connection.send(APBS(id,"1"));
-
- ICLogger.i("设置蓝牙扫描绑定MajorID "+cmdlist[3]+" ");
- String[] majorlist=cmdlist[3].split("&");
+ log("BPBS " + cmd);
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 4) {
+ String id = cmdlist[2];
+ connection.send(APBS(id, "1"));
+
+ ICLogger.i("设置蓝牙扫描绑定MajorID " + cmdlist[3] + " ");
+ String[] majorlist = cmdlist[3].split("&");
runtime.bleInfo.btMajorList.clear();
- for(int i=0;i<majorlist.length;i++){
+ for (int i = 0; i < majorlist.length; i++) {
runtime.bleInfo.btMajorList.add(majorlist[i]);
}
- }else{
+ } else {
ICLogger.i(" BPBS Format error!");
}
}
+
/**
* 85.设置联系人白名单(10个)(下行协议:BPWL,响应:APWL)
* 示例:
* D3590D54|135xxxxxxxxxx|9507xxxxxxxx, D3590D54|135xxxxxxxxxx|9507xxxxxxxx, D3590D54|135xxxxxxxxxx|9507xxxxxxxx, D3590D54|135xxxxxxxxxx|9507xxxxxxxx, D3590D54|135xxxxxxxxxx|9507xxxxxxxx, D3590D54|135xxxxxxxxxx|9507xxxxxxxx, D3590D54|135xxxxxxxxxx|9507xxxxxxxx, D3590D54|135xxxxxxxxxx|9507xxxxxxxx, D3590D54|135xxxxxxxxxx|9507xxxxxxxx, D3590D54|135xxxxxxxxxx|9507xxxxxxxx回复设备当前设置的主控号码供平台同步使用
* 说明: 本消息适用所有终端
*/
- public static StringMessage APWL(String index,String[] phnumbs){
- return genStringMessage("APWL",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APWL))
+ public static StringMessage APWL(String index, String[] phnumbs) {
+ return genStringMessage("APWL", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.APWL))
.append(CMDSPLIT).append(index)
.append(CMDSPLIT).append(phnumbs[0])
.append(CMDSPLIT).append(phnumbs[1])
.append(CMDSPLIT).append(phnumbs[9])
.append(CMDEND).toString());
}
+
//设置通讯录,白名单(10个)
- public void handleBPWL(Connection connection,String cmd , Runtime runtime){
+ public void handleBPWL(Connection connection, String cmd, Runtime runtime) {
// IWBPWL,867155030001063,357444,9b44529b|13554820016,,,,,,,,,
/**
* IWBPWL,353456789012345,080835,
* D3590D54|135xxxxxxxxxx,
* D3590D54|135xxxxxxxxxx#
*/
- String[] cmdlist=cmd.split(CMDSPLIT);
- String[] phnums=new String[]{"","","","","","","","","",""};
- StringBuffer sb=new StringBuffer().append("recv phone Numbs ");
- if (cmdlist.length>=3){
- switch (cmdlist.length){
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ String[] phnums = new String[]{"", "", "", "", "", "", "", "", "", ""};
+ StringBuffer sb = new StringBuffer().append("recv phone Numbs ");
+ if (cmdlist.length >= 3) {
+ switch (cmdlist.length) {
case 13:
- phnums[9]=cmdlist[12];
+ phnums[9] = cmdlist[12];
sb.append(phnums[9]).append(",");
case 12:
- phnums[8]=cmdlist[11];
+ phnums[8] = cmdlist[11];
sb.append(phnums[8]).append(",");
case 11:
- phnums[7]=cmdlist[10];
+ phnums[7] = cmdlist[10];
sb.append(phnums[7]).append(",");
case 10:
- phnums[6]=cmdlist[9];
+ phnums[6] = cmdlist[9];
sb.append(phnums[6]).append(",");
case 9:
- phnums[5]=cmdlist[8];
+ phnums[5] = cmdlist[8];
sb.append(phnums[5]).append(",");
case 8:
- phnums[4]=cmdlist[7];
+ phnums[4] = cmdlist[7];
sb.append(phnums[4]).append(",");
case 7:
- phnums[3]=cmdlist[6];
+ phnums[3] = cmdlist[6];
sb.append(phnums[3]).append(",");
case 6:
- phnums[2]=cmdlist[5];
+ phnums[2] = cmdlist[5];
sb.append(phnums[2]).append(",");
case 5:
- phnums[1]=cmdlist[4];
+ phnums[1] = cmdlist[4];
sb.append(phnums[1]).append(",");
case 4:
- phnums[0]=cmdlist[3];
+ phnums[0] = cmdlist[3];
sb.append(phnums[0]).append(",");
}
- String index=cmdlist[2];
+ String index = cmdlist[2];
ICLogger.i(sb.toString());
- connection.send(APWL(index,phnums));
- ArrayList<Contact> contactArray=new ArrayList<Contact>();
+ connection.send(APWL(index, phnums));
+ ArrayList<Contact> contactArray = new ArrayList<Contact>();
- if(Config.custom_name.equals("YT")) {
+ if (Config.custom_name.equals("YT")) {
ICLogger.i("=====add hotline 96885 ");
contactArray.add(new Contact(Contact.CATEGORY_CALL, runtime.getContextProxy().context.getResources().getString(R.string.hotline), "96885"));
}
- for (int i=0; i< phnums.length;i++){
- String[] tmp= phnums[i].split("\\|");
- if (tmp.length==2){
- String name= Util.decodeUnicode2Utf8(tmp[0]);
- String phonem=tmp[1];
- ICLogger.i("phnums["+i+"]="+phnums[i]+",split = "+tmp.length+" , name="+name+",-"+phonem);
- contactArray.add(new Contact(Contact.CATEGORY_CALL,name,phonem));
- }else{
- ICLogger.i("phnums["+i+"]="+phnums[i]+",split = "+tmp.length);
+ for (int i = 0; i < phnums.length; i++) {
+ String[] tmp = phnums[i].split("\\|");
+ if (tmp.length == 2) {
+ String name = Util.decodeUnicode2Utf8(tmp[0]);
+ String phonem = tmp[1];
+ ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length + " , name=" + name + ",-" + phonem);
+ contactArray.add(new Contact(Contact.CATEGORY_CALL, name, phonem));
+ } else {
+ ICLogger.i("phnums[" + i + "]=" + phnums[i] + ",split = " + tmp.length);
}
}
// contactArray.add(new Contact(Contact.CATEGORY_CARE,"CARE","666"));
// contactArray.add(new Contact(Contact.CATEGORY_VOLTE,"VOLTE","666"));
- runtime.getDbHelper().saveContacts(contactArray,false,false,true,false,false,false);
+ runtime.getDbHelper().saveContacts(contactArray, false, false, true, false, false, false);
- }else{
+ } else {
ICLogger.i(" BPWL format error!");
}
}
-
-
- public static StringMessage AP65(String id,String cy)
- {
- return genStringMessage("AP65",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP65))
+ public static StringMessage AP65(String id, String cy) {
+ return genStringMessage("AP65", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP65))
.append(CMDSPLIT).append(id)
.append(CMDSPLIT).append(cy)
.append(CMDEND).toString());
}
- public void handleBP65( Connection connection,Runtime runtime,String cmd) {
+ public void handleBP65(Connection connection, Runtime runtime, String cmd) {
/***
* 36.音量设置(下行协议:BP65,响应:AP65)
* 示例:
* 1: 表示指令执行成功,音量等级为1
*/
- log("BP65 "+cmd);
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==4){
- String id=cmdlist[2];
- String cycle=cmdlist[3].replace("#","");
- connection.send(AP65(id,cycle));
+ log("BP65 " + cmd);
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 4) {
+ String id = cmdlist[2];
+ String cycle = cmdlist[3].replace("#", "");
+ connection.send(AP65(id, cycle));
- if(Util.isNumeric(cycle)){
- int mastervolume=Integer.parseInt(cycle);
+ if (Util.isNumeric(cycle)) {
+ int mastervolume = Integer.parseInt(cycle);
- ICLogger.i("设置音量 "+mastervolume);
+ ICLogger.i("设置音量 " + mastervolume);
//实际设备音量 0~15 协议音量0~7需要转换
- int volume=mastervolume*2;
- if (volume<0)volume=0;
- if(volume>=14) volume=15;
- Config.setMasterVolume(runtime.getContextProxy().context,mastervolume*2);
- ICAudioManager.setMasterVolumn(runtime.getContextProxy().context,mastervolume*2);
+ int volume = mastervolume * 2;
+ if (volume < 0) volume = 0;
+ if (volume >= 14) volume = 15;
+ Config.setMasterVolume(runtime.getContextProxy().context, mastervolume * 2);
+ ICAudioManager.setMasterVolumn(runtime.getContextProxy().context, mastervolume * 2);
- }else{
+ } else {
ICLogger.i(" BP65 Format error!");
}
- }else{
+ } else {
ICLogger.i(" BP65 Format error!");
}
}
- public static StringMessage AP47(String id,String cycle)
- {
- return genStringMessage("AP47",new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP47))
+ public static StringMessage AP47(String id, String cycle) {
+ return genStringMessage("AP47", new StringBuffer(CMDHEADER).append(cmdMap.get(CMD_TYPE.AP47))
.append(CMDSPLIT).append(id)
.append(CMDSPLIT).append(cycle)
.append(CMDEND).toString());
}
- public void handleBP47( Connection connection,Runtime runtime,String cmd) {
+ public void handleBP47(Connection connection, Runtime runtime, String cmd) {
/***
* 37.震动设置(下行协议号:BP47,响应:AP47)
* 示例:
* 1:表示设备执行成功,0 表示设备执行失败
*/
- log("BP47 "+cmd);
- String[] cmdlist=cmd.split(CMDSPLIT);
- if (cmdlist.length==4){
- String id=cmdlist[2];
- String cycle=cmdlist[3].replace("#","");
- connection.send(AP47(id,cycle));
+ log("BP47 " + cmd);
+ String[] cmdlist = cmd.split(CMDSPLIT);
+ if (cmdlist.length == 4) {
+ String id = cmdlist[2];
+ String cycle = cmdlist[3].replace("#", "");
+ connection.send(AP47(id, cycle));
- if(Util.isNumeric(cycle)){
- int vibduration=Integer.parseInt(cycle);
- ICLogger.i("设置震动时长 "+vibduration+" 秒");
- Config.setDurationOfVibration(runtime.getContextProxy().context,vibduration);
- VibrateUtil.setVibPattern(vibduration*1000);
+ if (Util.isNumeric(cycle)) {
+ int vibduration = Integer.parseInt(cycle);
+ ICLogger.i("设置震动时长 " + vibduration + " 秒");
+ Config.setDurationOfVibration(runtime.getContextProxy().context, vibduration);
+ VibrateUtil.setVibPattern(vibduration * 1000);
- }else{
+ } else {
ICLogger.i(" BP47 Format error!");
}
- }else{
+ } else {
ICLogger.i(" BP47 Format error!");
}
}
+
public boolean handleCmd(CMD_TYPE type, String cmd) {
- //普通非二进制命令用此函数处理
- boolean ret=true;
- ICLogger.i("handleCmd "+type.name() + " strLen="+cmd.length());
- if (Config.LOG_TOFILE)ICLogger.logToFile("APILog", " recv " + cmd);
- cmd=cmd.replace(" ","");
- switch (type){
+ //普通非二进制命令用此函数处理
+ boolean ret = true;
+ ICLogger.i("handleCmd " + type.name() + " strLen=" + cmd.length());
+ if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv " + cmd);
+ cmd = cmd.replace(" ", "");
+ switch (type) {
case BP00: //登录包
- handleBP00(mRuntime,cmd);
+ handleBP00(mRuntime, cmd);
ICLogger.i("服务器收到登录包AP00");
- mConnection.DeliverCMDMessageToSystem("login",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("login", cmd);//通知下面线程状态变化
break;
case BP01: //gps定位包
handleBP01(cmd);
ICLogger.i("服务器收到定位AP01");
- mConnection.DeliverCMDMessageToSystem("AP01",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("AP01", cmd);//通知下面线程状态变化
break;
case BP02:// wifi定位包
handleBP02(cmd);
ICLogger.i("服务器收到定位AP02");
- mConnection.DeliverCMDMessageToSystem("AP02",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("AP02", cmd);//通知下面线程状态变化
break;
case BP03: //心跳包
handleBP03(cmd);
ICLogger.i("服务器收到心跳包AP03");
- mConnection.DeliverCMDMessageToSystem("heartbeat",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("heartbeat", cmd);//通知下面线程状态变化
break;
case BP07:
//收到发送的语音包
- handleBP07(cmd,mConnection);
+ handleBP07(cmd, mConnection);
break;
case BP10:
//报警包
- mConnection.DeliverCMDMessageToSystem("AP10",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("AP10", cmd);//通知下面线程状态变化
break;
case BPBR:
- mConnection.DeliverCMDMessageToSystem("APBR",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APBR", cmd);//通知下面线程状态变化
break;
case BPTM:
//校时命令
handleBPTM(cmd);
ICLogger.i("服务器收到校时命令APTM");
- mConnection.DeliverCMDMessageToSystem("APTM",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APTM", cmd);//通知下面线程状态变化
break;
case BP85://设置闹钟
- handleBP85(cmd,mConnection,mRuntime);
+ handleBP85(cmd, mConnection, mRuntime);
ICLogger.i("收到服务器设置闹钟命令BP85");
- mConnection.DeliverCMDMessageToSystem("AP85",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("AP85", cmd);//通知下面线程状态变化
break;
case BP87:
- handleBP87(cmd,mConnection,mRuntime);
+ handleBP87(cmd, mConnection, mRuntime);
ICLogger.i("收到服务器 QRCode uri BP87");
break;
case BP33:
//设置工作模式
- handleBP33(mConnection,mRuntime,cmd);
- mConnection.DeliverCMDMessageToSystem("setWorkMod",cmd);//通知下面线程状态变化
+ handleBP33(mConnection, mRuntime, cmd);
+ mConnection.DeliverCMDMessageToSystem("setWorkMod", cmd);//通知下面线程状态变化
break;
case BP34:
//设置工作模式
- handleBP34(mConnection,mRuntime,cmd);
- mConnection.DeliverCMDMessageToSystem("setWorkMod",cmd);//通知下面线程状态变化
+ handleBP34(mConnection, mRuntime, cmd);
+ mConnection.DeliverCMDMessageToSystem("setWorkMod", cmd);//通知下面线程状态变化
break;
case BP16:
//立即定位指令(长链接有效)
- handleBP16(mConnection,mRuntime,cmd);
- mConnection.DeliverCMDMessageToSystem("StartLocate",cmd);//通知下面线程状态变化
+ handleBP16(mConnection, mRuntime, cmd);
+ mConnection.DeliverCMDMessageToSystem("StartLocate", cmd);//通知下面线程状态变化
break;
case BP46: //立即拍照
ICLogger.i("立即拍照!");
- handleBP46(cmd,mConnection,mRuntime);
+ handleBP46(cmd, mConnection, mRuntime);
break;
case BP12:
//收到设置SOS号码
- handleBP12(mConnection,cmd,mRuntime);
+ handleBP12(mConnection, cmd, mRuntime);
ICLogger.i("收到服务器设置SOS号码命令BP12");
break;
case BP14:
//收到设置白名单号码
- handleBP14(mConnection,cmd,mRuntime);
+ handleBP14(mConnection, cmd, mRuntime);
ICLogger.i("收到服务器设置白名单号码命令BP14");
break;
case BPWL:
//收到设置白名单号码
- handleBPWL(mConnection,cmd,mRuntime);
+ handleBPWL(mConnection, cmd, mRuntime);
ICLogger.i("收到服务器设置白名单号码命令BPWL");
break;
case BP15:
- handleBP15(cmd,mConnection,mRuntime);
+ handleBP15(cmd, mConnection, mRuntime);
ICLogger.i("收到服务器设置定位命令BP15");
break;
case BP17:
//收到恢复出厂设置
- handleBP17(mConnection,cmd);
+ handleBP17(mConnection, cmd);
ICLogger.i("收到服务器恢复出厂设置命令BP17");
- mConnection.DeliverCMDMessageToSystem("FactoryReset",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("FactoryReset", cmd);//通知下面线程状态变化
break;
case BP18:
//收到重启
- handleBP18(mConnection,cmd);
+ handleBP18(mConnection, cmd);
ICLogger.i("收到服务器重启命令BP18");
- mConnection.DeliverCMDMessageToSystem("Reboot",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("Reboot", cmd);//通知下面线程状态变化
break;
case BP31:
//收到关机
- handleBP31(mConnection,cmd);
+ handleBP31(mConnection, cmd);
ICLogger.i("收到服务器关机命令BP31");
- mConnection.DeliverCMDMessageToSystem("poweroff",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("poweroff", cmd);//通知下面线程状态变化
break;
case BP40:
//服务器推送文本
- handleBP40(mConnection,mRuntime,cmd);
+ handleBP40(mConnection, mRuntime, cmd);
ICLogger.i("收到服务器推送文本消息");
- mConnection.DeliverCMDMessageToSystem("showTxt",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("showTxt", cmd);//通知下面线程状态变化
break;
case BPXL:
- handleBPXL(cmd,mConnection);
+ handleBPXL(cmd, mConnection);
ICLogger.i("收到服务器心率检测命令");
- if(mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();
+ if (mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();
break;
case BPXY:
- handleBPXY(cmd,mConnection);
+ handleBPXY(cmd, mConnection);
ICLogger.i("收到服务器血压检测命令");
- if(mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();
+ if (mRuntime.check_stat_do_ppg_test()) HeartRateManager.triggerPPGtest();
break;
case BPJZ:
- handleBPJZ(cmd,mConnection,mRuntime);
+ handleBPJZ(cmd, mConnection, mRuntime);
ICLogger.i("收到服务器血压校准命令");
break;
case BPHT:
ICLogger.i("服务器收到上传的心率血压");
- mConnection.DeliverCMDMessageToSystem("APHT",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APHT", cmd);//通知下面线程状态变化
break;
case BP84:
- handleBP84(cmd,mConnection);
+ handleBP84(cmd, mConnection);
ICLogger.i("收到服务器白名单命令");
break;
case BP86:
//心率周期
- handleBP86(cmd,mConnection,mRuntime);
- mConnection.DeliverCMDMessageToSystem("AP86",cmd);//通知下面线程状态变化
+ handleBP86(cmd, mConnection, mRuntime);
+ mConnection.DeliverCMDMessageToSystem("AP86", cmd);//通知下面线程状态变化
break;
case BP68: //绑定解绑
- handleBP68(cmd,mConnection,mRuntime);
+ handleBP68(cmd, mConnection, mRuntime);
break;
case BP88:
//收到查找设备消息
- handleBP88(cmd,mConnection);
- mConnection.DeliverCMDMessageToSystem("findDev",cmd);//通知下面线程状态变化
+ handleBP88(cmd, mConnection);
+ mConnection.DeliverCMDMessageToSystem("findDev", cmd);//通知下面线程状态变化
break;
case BP89:
//心率/血压阀值
- handleBP89(cmd,mConnection);
- mConnection.DeliverCMDMessageToSystem("AP89",cmd);//通知下面线程状态变化
+ handleBP89(cmd, mConnection);
+ mConnection.DeliverCMDMessageToSystem("AP89", cmd);//通知下面线程状态变化
break;
case BPTE: //设置测试体温
- handleBPTE(cmd,mConnection,mRuntime);
- mConnection.DeliverCMDMessageToSystem("APTE",cmd);//通知下面线程状态变化
+ handleBPTE(cmd, mConnection, mRuntime);
+ mConnection.DeliverCMDMessageToSystem("APTE", cmd);//通知下面线程状态变化
break;
case BPTP:
handleBPTP();
- mConnection.DeliverCMDMessageToSystem("APTP",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APTP", cmd);//通知下面线程状态变化
break;
case BPHP:
handleBPHP();
- mConnection.DeliverCMDMessageToSystem("APHP",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APHP", cmd);//通知下面线程状态变化
break;
case BPX1://设置 心率血压血氧修正值
- handleBPX1(cmd,mConnection,mRuntime);
+ handleBPX1(cmd, mConnection, mRuntime);
ICLogger.i("收到服务器设置 心率血压血氧修正值BPX1");
- mConnection.DeliverCMDMessageToSystem("APX1",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APX1", cmd);//通知下面线程状态变化
break;
case BPS4: //提醒设置(时间段) 主要为久坐设置提醒时长。
- handleBPS4(cmd,mConnection,mRuntime);
+ handleBPS4(cmd, mConnection, mRuntime);
ICLogger.i("收到 提醒设置(时间段)");
- mConnection.DeliverCMDMessageToSystem("APS4",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APS4", cmd);//通知下面线程状态变化
break;
case BPDE:
- handleBPDE(mConnection,cmd,mRuntime);
+ handleBPDE(mConnection, cmd, mRuntime);
ICLogger.i(" 收到 进出围栏通知!");
- mConnection.DeliverCMDMessageToSystem("APDE",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APDE", cmd);//通知下面线程状态变化
break;
case BPTU:
handleBPTU(cmd, mConnection);
ICLogger.i("收到服务器 图片语音 消息 BPTU");
- // mConnection.DeliverCMDMessageToSystem("APTU", "");//通知下面线程状态变化
+ // mConnection.DeliverCMDMessageToSystem("APTU", "");//通知下面线程状态变化
break;
case BPDG:
- handleBPDG(mConnection,cmd,mRuntime);
+ handleBPDG(mConnection, cmd, mRuntime);
ICLogger.i(" 收到 体温阈值设置!");
- mConnection.DeliverCMDMessageToSystem("APDG",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APDG", cmd);//通知下面线程状态变化
break;
case BPSL:
ICLogger.i("睡眠数据上传完毕!");
- mConnection.DeliverCMDMessageToSystem("APSL",cmd);//通知下面线程状态变化
+ mConnection.DeliverCMDMessageToSystem("APSL", cmd);//通知下面线程状态变化
break;
case BPDH:
ICLogger.i("聆听");
- handleBPDH(mConnection,mRuntime,cmd);
+ handleBPDH(mConnection, mRuntime, cmd);
break;
case BPTQ: //天气下发
- handleBPTQ(mConnection,mRuntime,cmd);
+ handleBPTQ(mConnection, mRuntime, cmd);
break;
case BPAT://剪断开关设定
- handleBPAT(mConnection,mRuntime,cmd);
+ handleBPAT(mConnection, mRuntime, cmd);
break;
case BPBT://蓝牙扫描设置
- handleBPBT(mConnection,mRuntime,cmd);
+ handleBPBT(mConnection, mRuntime, cmd);
break;
case BPBS://蓝牙扫描设置Majorlist
- handleBPBS(mConnection,mRuntime,cmd);
+ handleBPBS(mConnection, mRuntime, cmd);
break;
case BP65://声音设置
- handleBP65(mConnection,mRuntime,cmd);
+ handleBP65(mConnection, mRuntime, cmd);
break;
case BP47://震动设置
- handleBP47(mConnection,mRuntime,cmd);
+ handleBP47(mConnection, mRuntime, cmd);
break;
public boolean handleCmd(CMD_TYPE type, String cmd, byte[] bytes) {
//只有需要传递二进制数据的才需要这个函数,目前只有BP28需要
- boolean ret=true;
- ICLogger.i("handleCmd "+type.name() + " "+cmd+" bytelen="+bytes.length );
- if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv " +new String(bytes));
+ boolean ret = true;
+ ICLogger.i("handleCmd " + type.name() + " " + cmd + " bytelen=" + bytes.length);
+ if (Config.LOG_TOFILE) ICLogger.logToFile("APILog", " recv " + new String(bytes));
switch (type) {
case BP28:
- handleBP28(mConnection,cmd, mRuntime,bytes);
+ handleBP28(mConnection, cmd, mRuntime, bytes);
ICLogger.i("收到服务器语音BP28");
// mConnection.DeliverCMDMessageToSystem("BP28", "");//通知下面线程状态变化
break;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Handler;
+import android.os.HandlerThread;
import android.os.IBinder;
import android.os.Message;
import android.util.Log;
import com.enqualcomm.support.Config;
-import com.enqualcomm.support.bean.EventLooperHandlerThread;
import com.enqualcomm.support.utils.ICLogger;
import se.wetcat.qatja.MQTTConstants;
import se.wetcat.qatja.android.MQTTConnectionConstants;
import se.wetcat.qatja.android.QatjaService;
-import se.wetcat.qatja.messages.MQTTMessage;
import se.wetcat.qatja.messages.MQTTPublish;
public class protocol_mqtt_client {
private String TAG = protocol_mqtt_client.class.getSimpleName();
- private Handler mHandler ;
+ private Handler mHandler;
QatjaService mClient = null;
private Context mContext;
private boolean isBound = false;
private boolean isBinding = false;
- public static String topic_header="";
+ public static String topic_header = "";
- public void setSubscriptTopicHeader(String header){
- topic_header=header;
+ public void setSubscriptTopicHeader(String header) {
+ topic_header = header;
}
+
private class MqttCallback implements Handler.Callback {
@Override
public boolean handleMessage(Message msg) {
- ICLogger.i("MqttCallback handleMessage "+msg.what);
+ ICLogger.i("MqttCallback handleMessage " + msg.what);
switch (msg.what) {
case MQTTConnectionConstants.STATE_CHANGE:
handleStateChange(msg);
}
}
- MqttCallbackInterface mqttCallbackInterface=null;
- public protocol_mqtt_client(Context context,MqttCallbackInterface _mqttCallbackInterface) {
- mqttCallbackInterface=_mqttCallbackInterface;
+ MqttCallbackInterface mqttCallbackInterface = null;
+
+ public protocol_mqtt_client(Context context, MqttCallbackInterface _mqttCallbackInterface) {
+
+ mqttCallbackInterface = _mqttCallbackInterface;
mContext = context;
- mHandler = new Handler(EventLooperHandlerThread.makeLooper(MqttCallback.class.getSimpleName()),new MqttCallback());
+ HandlerThread handlerThread = new HandlerThread("ic:mqtt-handler-thread");
+ handlerThread.start();
+ mHandler = new Handler(handlerThread.getLooper(), new MqttCallback());
}
private void handleStateChange(Message msg) {
switch (msg.arg1) {
case MQTTConnectionConstants.STATE_NONE:
- if (mqttCallbackInterface!= null)
+ if (mqttCallbackInterface != null)
mqttCallbackInterface.onMqttDisconnected();
break;
case MQTTConnectionConstants.STATE_CONNECTING:
break;
case MQTTConnectionConstants.STATE_CONNECTED:
- if (mqttCallbackInterface!=null)
+ if (mqttCallbackInterface != null)
mqttCallbackInterface.onMqttConnected();
break;
case MQTTConnectionConstants.STATE_CONNECTION_FAILED:
- if (mqttCallbackInterface!=null)
+ if (mqttCallbackInterface != null)
mqttCallbackInterface.onMqttDisconnected();
break;
default:
Log.d(TAG, "handleReceivedMessage(${publish.topicName})" + publish.getTopicName() + " data " + new String(publish.getPayload()));
// }
- String cmdtype= publish.getTopicName().replace(topic_header,"");
- if (Config.LOG_TOFILE)ICLogger.logToFile("APILog", "mqtt recv " + publish.getTopicName() +" "+ new String(publish.getPayload()));
- if (mqttCallbackInterface!=null)
+ String cmdtype = publish.getTopicName().replace(topic_header, "");
+ if (Config.LOG_TOFILE)
+ ICLogger.logToFile("APILog", "mqtt recv " + publish.getTopicName() + " " + new String(publish.getPayload()));
+ if (mqttCallbackInterface != null)
mqttCallbackInterface.handleMqttMessage(cmdtype, publish.getPayload());
}
public void Pause() {
try {
- if(mClient!=null) mClient.disconnect();
+ if (mClient != null) mClient.disconnect();
mContext.unbindService(mConnection);
}
}
- private String mqttHost="";
- private String devid="";
- private int mqtt_port=8083;
- private int mqtt_cycle_seconds=600;
- public void configMqtt(String host,int port,int cycle_seconds,String idname){
- mqttHost=host;
- devid=idname;
- mqtt_port=port;
- mqtt_cycle_seconds=cycle_seconds;
+
+ private String mqttHost = "";
+ private String devid = "";
+ private int mqtt_port = 8083;
+ private int mqtt_cycle_seconds = 600;
+
+ public void configMqtt(String host, int port, int cycle_seconds, String idname) {
+ mqttHost = host;
+ devid = idname;
+ mqtt_port = port;
+ mqtt_cycle_seconds = cycle_seconds;
}
- public void attemptConnectMqtt(){
- attemptConnectMqtt(mqttHost,mqtt_port,devid,mqtt_cycle_seconds);
+ public void attemptConnectMqtt() {
+ attemptConnectMqtt(mqttHost, mqtt_port, devid, mqtt_cycle_seconds);
}
- public void attemptConnectMqtt(String host, int port,String identifier, int cycle_inSeconds) {
- ICLogger.i("attemptConnectMqtt("+host+", "+port+" "+identifier+" "+cycle_inSeconds);
+
+ public void attemptConnectMqtt(String host, int port, String identifier, int cycle_inSeconds) {
+ ICLogger.i("attemptConnectMqtt(" + host + ", " + port + " " + identifier + " " + cycle_inSeconds);
if (!(MQTTConnectionConstants.STATE_CONNECTING == mClient.getState() || MQTTConnectionConstants.STATE_CONNECTED == mClient.getState())) {
try {
}
}
- public void sendMessage(String cmdtype,String data){
+ public void sendMessage(String cmdtype, String data) {
// ICLogger.logToFile("APILog",cmdtype+" "+data);
- mClient.publish(cmdtype,data);
+ mClient.publish(cmdtype, data);
}
- public interface MqttCallbackInterface
- {
- void onMqttConnected() ;
+ public interface MqttCallbackInterface {
+ void onMqttConnected();
void onMqttDisconnected();
- void handleMqttMessage(String cmdtype,byte[] msgdata);
- void handleMqttMessage(String cmdtype,String msgdata);
+ void handleMqttMessage(String cmdtype, byte[] msgdata);
+
+ void handleMqttMessage(String cmdtype, String msgdata);
}
}
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
-#Wed Dec 16 16:41:45 CST 2020
-sdk.dir=C\:\\Users\\incar\\AppData\\Local\\Android\\Sdk
+#Tue Dec 29 09:16:53 CST 2020
+sdk.dir=D\:\\Android\\Sdk