abortOnError false
}
signingConfigs {
- key {
+ debug {
storeFile file("EQC_G5.jks")
storePassword "123456"
keyAlias "watch_g5"
keyPassword "123456"
}
- debug {
- storeFile file('EQC_G5.jks')
- storePassword '123456'
- keyAlias = 'watch_g5'
- keyPassword '123456'
+ release {
+// storeFile file('EQC_G5.jks')
+// storePassword '123456'
+// keyAlias = 'watch_g5'
+// keyPassword '123456'
+ storeFile file("platform.jks")
+ storePassword "123456"
+ keyAlias "android"
+ keyPassword "123456"
}
}
buildTypes {
release {
zipAlignEnabled true // zip 对齐优化
shrinkResources true // 移除未使用的资源文件
- signingConfig signingConfigs.key
+ signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
renderscriptDebuggable = false
}
debug {
- signingConfig signingConfigs.key
+ signingConfig signingConfigs.debug
// 启用 Android 插件压缩器
// minifyEnabled true
// useProguard false
-[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":909,"versionName":"2108140014","enabled":true,"outputFile":"ICProtocol8.1_V909_2108140014_release.apk","fullName":"release","baseName":"release"},"path":"ICProtocol8.1_V909_2108140014_release.apk","properties":{}}]
\ No newline at end of file
+[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":911,"versionName":"2108142000","enabled":true,"outputFile":"ICProtocol8.1_V911_2108142000_release.apk","fullName":"release","baseName":"release"},"path":"ICProtocol8.1_V911_2108142000_release.apk","properties":{}}]
\ No newline at end of file
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秒
//联网再重试连接服务器, 不能够联网的情况下不管是不是有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秒重试一次
- }
-// }
+ mHandler.postDelayed(mReConnectSrvThread,5000);
}
private final ReConnectSrvThread mReConnectSrvThread = new ReConnectSrvThread();
if (connection.isServerConnected()) {
ICLogger.i("retry 如果连接成功则停止重试!");
no_network_Heartbeats_Count = 0;
- stopConnectionRetryTimer();
+ return;
} 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 + "次心跳都没有连接服务器成功!");
- stopConnectionRetryTimer();
+ return;
} else {
retry_connect_count++;
String ip = runtime.getDnsUtil().getServerIP_ByDNSCache(runtime.getHost());
//没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网
ICLogger.i("retry " + no_network_Heartbeats_Count + " 没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网!");
no_network_Heartbeats_Count++;
- stopConnectionRetryTimer();
+ return;
}
if (no_network_Heartbeats_Count > 12) {
ICLogger.i("当前第" + no_network_Heartbeats_Count + "次心跳都没有连接服务器成功 > 10 ,重置SIM卡尝试重新注册网络!");
SimSignalUtil.send_at_to_reset_simcard(runtime); //直接下此命令不能实现断网重连,所以干脆采用关闭网络再打开的方式。
no_network_Heartbeats_Count = 0;//重置Sim卡后重置计数。防止后面多次重置Sim卡。
}
- }
-
- public void stopConnectionRetryTimer() {
- if (mTimer_retry_connect != null) {
- mTimer_retry_connect.shutdownNow();
-// while(!mTimer_retry_connect.isTerminated())
-// {
-// ICLogger.i("Wait for thread pool terminated");
-// try {
-// Thread.sleep(500);
-// } catch (InterruptedException e) {
-// e.printStackTrace();
-// }
-// }
- mTimer_retry_connect.purge();
- mTimer_retry_connect = null;
- }
+ mHandler.postDelayed(mReConnectSrvThread,20000);
}
@Override
public void startResponseCheckTimer() {
//联网再重试连接服务器
if (SimSignalUtil.checkNet(mRuntime.getContextProxy().context)) {
- stopResponseCheckTimer();
- if (scheduled == null) {
- scheduled = new ScheduledThreadPoolExecutor(10);
- }
//开始检测重新计数
hearBeatResendCount = 0;
//如果开始进行连接重
// {
// 试,证明网络断开的,那么KeepAlive也需要重连(心跳包)
- scheduled.scheduleAtFixedRate(CheckSrvResponseTimerTask,
- heartBeatRetryTimeout * 1000,
- heartBeatRetryTimeout * 1000,
- TimeUnit.MILLISECONDS); //delay 3秒先检查一次,然后每5秒重试一次
+ mHandler.postDelayed(CheckSrvResponseTimerTask,heartBeatRetryTimeout * 1000);
+ //delay 3秒先检查一次,然后每5秒重试一次
}
}
//如果收到服务器响应BP03,则停止重试,否则 继续发送AP03 心跳包,且继续检查响应
if (this.is_heartBeat_send_success) {
ICLogger.i("checkSrvResponse 成功,停止检测!");
- stopResponseCheckTimer();
+ return ;
} else {
//心跳发送失败,则认为已经和服务器断开
mRuntime.setServerProtocolConnected(false);
//如果重试次数大于等于 最大重试次数,则停止重试,等下次心跳时间再行尝试。
if (hearBeatResendCount >= MaxHeartbeatResendTime) {
ICLogger.i("checkSrvResponse " + hearBeatResendCount + "次 >= " + MaxHeartbeatResendTime + " , 则停止重试,等下次心跳时间再行尝试!");
- stopResponseCheckTimer();
+ return;
} else {
//重新发送AP03心跳包
ICLogger.i("checkSrvResponse 失败,第" + hearBeatResendCount + "次,重新发送AP03心跳包!");
//没有网络就不用重新尝试连接网络了。网络连接后再重新尝试联网
ICLogger.i("checkSrvResponse stop , 没有网络就不用重新尝试检测服务器响应和重新发送心跳包了!");
- stopResponseCheckTimer();
+ return ;
}
+
+ mHandler.postDelayed(CheckSrvResponseTimerTask,heartBeatRetryTimeout * 1000);
}
- 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.setRemoveOnCancelPolicy(true);
- ICLogger.i("Wait for thread pool getContinueExistingPeriodicTasksAfterShutdownPolicy " + scheduled.getContinueExistingPeriodicTasksAfterShutdownPolicy() +
- "\ngetExecuteExistingDelayedTasksAfterShutdownPolicy " + scheduled.getExecuteExistingDelayedTasksAfterShutdownPolicy());//+
-// "\ngetRemoveOnCancelPolicy "+scheduled.getRemoveOnCancelPolicy());
-// while(!scheduled.isTerminated())
-// {
-// StringBuilder sb=new StringBuilder();
-// if (scheduled.isTerminated()) sb.append("+");
-// if (scheduled.isShutdown()) sb.append("*");
-// if (scheduled.isTerminating()) sb.append("-");
-// ICLogger.i(sb.toString());
-// try {
-// Thread.sleep(500);
-// } catch (InterruptedException e) {
-// e.printStackTrace();
-// }
-// }
- scheduled.purge();
- scheduled = null;
- }
- ICLogger.i(" stopResponseCheckTimer Done ");
- }
public void onAlarmClock(Connection paramConnection, Runtime paramRuntime) {
// if (isConnected)
//如果KeepAlive被关闭说明网络有问题,因此开启重试联网机制
- stopResponseCheckTimer();
if (false) {
if (ErrorMsg.equals("DIS_CONNECT_BY_SERVERSIDE")) {
public void onHeartAlarm(Connection paramNettyConnection, Runtime paramRuntime) {
ICLogger.i("onHeartAlarm");
- stopResponseCheckTimer();
+
//心跳开始发送的时候,先重置response检测标志
is_heartBeat_send_success = false;
//login成功后,上传当前版本号
paramConnection.send(protocolAPIHelper.getDeviceVersion(paramRuntime));
//登录包收到就停止重链接服务器
- CoreService.getInstance().stopConnectionRetryTimer();
+// CoreService.getInstance().stopConnectionRetryTimer();
is_login_send_success = true;
//收到登录包反馈后再发送心跳
if (regexUtil.isFZDCompanyCMD(CMD_COMPANY,cmd_msgbuf)) {
for (CMD_TYPE key : cmdMap.keySet()) {
if (regexUtil.isFZDCompanyCMD(CMD_COMPANY,cmdMap.get(key), cmd_msgbuf)) { //如果是FZD命令,则进行处理,否则保留数据动
- ICLogger.i("found cmd keyid=" + key + " ,keyname=" + cmdMap.get(key));
+// ICLogger.i("found cmd keyid=" + key + " ,keyname=" + cmdMap.get(key));
return cmdMap.get(key);
}
}
// ICLogger.d("key " + cmdMap.get(key) +" "+cmdname+" cmdbuf " + cmd_msgbuf);
if (cmdMap.get(key).equals(cmdname)) { //如果是FZD命令,则进行处理,否则保留数据动
- ICLogger.d("key is == > " + key);
+// ICLogger.d("key is == > " + key);
// if (key == CMD_TYPE.TK) {
// handlerGroupChatVoiceContent(totalByte);
// } else if (key == CMD_TYPE.TKOne) {