From: snickersun Date: Mon, 10 Feb 2020 15:46:54 +0000 (+0800) Subject: 1、拨打紧急电话延后5秒,以便可以提前发送AP10报警定位信息,防止后报警数据上报延时过久。 X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=5c32607f7b3d138dd008f82f2847c7a3ba1f87d8;p=icsupport.git 1、拨打紧急电话延后5秒,以便可以提前发送AP10报警定位信息,防止后报警数据上报延时过久。 2、添加 低电关机上报AP10报警。 --- diff --git a/app/src/main/java/com/enqualcomm/support/CoreService.java b/app/src/main/java/com/enqualcomm/support/CoreService.java index e55b9e12..825ed15a 100644 --- a/app/src/main/java/com/enqualcomm/support/CoreService.java +++ b/app/src/main/java/com/enqualcomm/support/CoreService.java @@ -56,6 +56,8 @@ import com.enqualcomm.support.utils.Util; import java.lang.ref.WeakReference; import chestnut.ui.Toastc; import chestnut.utils.PhoneUtils; +import rx.Observable; +import rx.functions.Action1; import android.content.BroadcastReceiver; import android.content.Context; @@ -67,6 +69,7 @@ import android.telephony.TelephonyManager; import java.util.Random; import java.util.Timer; import java.util.TimerTask; +import java.util.concurrent.TimeUnit; import static android.app.PendingIntent.FLAG_UPDATE_CURRENT; import static com.enqualcomm.support.Constants.ACTION_ALARM_ADD_DATAPOINTS; @@ -220,7 +223,13 @@ public class CoreService extends Service { //设置5分钟后结束紧急定位模式 setEmegencyLocationSTOPAlarm(5); - trigger_SOS_Call(); + //5秒后开始拨打电话 + Observable.timer(5000L, TimeUnit.MILLISECONDS).subscribe(new Action1() { + public void call(Long param1Long) { + trigger_SOS_Call(); + } + }); + } } diff --git a/app/src/main/java/com/enqualcomm/support/service/Deliver.java b/app/src/main/java/com/enqualcomm/support/service/Deliver.java index 989af5c2..36627df9 100644 --- a/app/src/main/java/com/enqualcomm/support/service/Deliver.java +++ b/app/src/main/java/com/enqualcomm/support/service/Deliver.java @@ -93,8 +93,6 @@ public class Deliver extends AbstractConnectionService { private static Runtime mRuntime; - private final String spilForWifi = "@EQCWIFI@"; - private boolean wakeLockWifiList = false; private boolean wakeLockWifiSet = false; @@ -112,7 +110,6 @@ public class Deliver extends AbstractConnectionService { //把queue 保存在磁盘中的缓存文件 //此文件只缓存 除了 登录指令AP00,心跳AP03以及voice 分包指令以外的需要上传的指令。初步规划为 定位AP01和心率/血压 APHT fileCache = new FileCache(paramRuntime.getFileDir()); - initQueue(); } private static boolean checkNetwork(){ @@ -163,36 +160,10 @@ public class Deliver extends AbstractConnectionService { } Logger.i("send cached cmd: \n"+str); }finally { - lock.unlock(); + if(lock!=null && lock.isLocked()) + lock.unlock(); } -// mLock.lock(); -// try { -// mCondition.signal(); -// -// } finally { -// mLock.unlock(); -// } - } - } - MyThread2 mythread2=null; - - private void initQueue(){ -// if (mRuntime.getUseQueue()) { -// /*启动 阻塞队列buffer 发送县城,随时准备发送buffer的message*/ -// if (mythread2 == null) -// mythread2 = new MyThread2(this.mCondition, this.mLock); -// mythread2.exitthread=false; -// mythread2.start(); -// } - } - private void deInitQueue(){ - if (mRuntime.getUseQueue()) { - mythread2.exitthread = true; - if (mythread2 != null) { -// mythread2.stop(); - mythread2 = null; - } } } private static void loadMessage2Queue() { @@ -243,99 +214,6 @@ public class Deliver extends AbstractConnectionService { } - static class MyThread2 extends Thread { - Condition condition; - - boolean isResent = false; - public boolean exitthread=false; - ReentrantLock lock; - - public MyThread2(Condition param1Condition, ReentrantLock param1ReentrantLock) { - this.condition = param1Condition; - this.lock = param1ReentrantLock; - } - - public void run() { - StringMessage stringMessage = null; - - while (!exitthread) { - - //循环发送queue 中的数据 - - try { - Logger.i("Sending Thread Queue Take "); - - StringMessage stringMessage1 = (StringMessage)queue.take(); - try { - - int signal=mRuntime.getSignalStrength(); - int networkType=SimSignalUtil.getInstance((mRuntime.getContextProxy()).context).getNetworkType(); - if (signal + 110 < getMinSignalStrength(networkType)) { - Logger.i("Skip Send for SignalStrengh "+(signal + 110 )+" < "+getMinSignalStrength(networkType)); - //如果信号不好,把msg放回去 - queue.putFirst(stringMessage1); - - } else { - - stringMessage=stringMessage1; - - Context context = (mRuntime.getContextProxy()).context; - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append("send="); - stringBuilder.append(stringMessage.cmd()); - stringBuilder.append(", "); - stringBuilder.append(stringMessage.isFromCache()); - if (Config.LOG_TOFILE) FileOutputUtil.fileOutput(mRuntime.getCacheDir(), "MessageInfo", stringBuilder.toString()); - Logger.i(stringBuilder.toString()); - if( connection.isServerConnected() ==false && !KeepAlive.isConnected ) { - - Logger.i("Skip Send for connection and KeepAlive both false "); - //发现连接断开则重试连接 -// CoreService.getInstance().startConnectionRetryTimer(); - //连接断开就把msg放回队列,以便重发 - queue.putFirst(stringMessage1); - }else{ - //连接状态都正常才发送包 - connection.send(stringMessage); - } - - - this.lock.lock(); - - try { - if (KeepAlive.isConnected) { - //如果 服务器连接状态,等30秒,随时等待数据发送 - Logger.i("KeepAlive.isConnected "+KeepAlive.isConnected+" delay 30000ms"); - this.condition.await(30000L, TimeUnit.MILLISECONDS); - } else { - //如果服务器断开,等5秒 以便连接后尽快进入下一循环,尽量及时响应 - Logger.i("KeepAlive.isConnected "+KeepAlive.isConnected+ " , connection isconnected "+connection.isServerConnected()+" delay 5000ms"); - - this.condition.await(5000L, TimeUnit.MILLISECONDS); - } - - - if (queue.peek() == null) { - loadMessage2Queue(); - this.lock.unlock(); - continue; - } - - } catch (InterruptedException e) { - e.printStackTrace(); - }finally{ - this.lock.unlock(); - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } catch (Exception e) { - e.printStackTrace(); - } - }//while end - } - } public static void sendLocationMSG( String Msg){ if(mRuntime.getUseQueue()){ diff --git a/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java b/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java index edbae052..056b5006 100644 --- a/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java +++ b/app/src/main/java/com/enqualcomm/support/service/KeepAlive.java @@ -221,6 +221,8 @@ public class KeepAlive extends AbstractConnectionService { public void onReceive(Context param1Context, Intent param1Intent) { boolean bool = param1Intent.getBooleanExtra("reboot", false); if (KeepAlive.this.mRuntime.getBatteryLow() && !KeepAlive.this.mRuntime.getBatterychanging() && !bool && !KeepAlive.this.mRuntime.isShutdown()){ + + KeepAlive.this.mRuntime.setAlarmType(false,KeepAlive.this.mRuntime.getBatteryLow(),false,false); KeepAlive.this.connection.send(protocolAPIHelper.genStringMessage("AP10",protocolAPIHelper.AP10(KeepAlive.this.mRuntime))); }