Browse Source

fix: 截图

dejiAi
高志龙 2 months ago
parent
commit
bb0f5785af
  1. 2
      app/build.gradle
  2. 36
      app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java
  3. 4
      app/src/main/java/qianmu/container/app/Constant.java
  4. 3
      app/src/main/java/qianmu/container/mqtt/MQTTService.java

2
app/build.gradle

@ -7,7 +7,7 @@ android {
defaultConfig {
applicationId "qianmu.container"
minSdkVersion 22
minSdkVersion 26
targetSdkVersion 30
versionCode 6
versionName "V2.0.7.54"

36
app/src/main/java/qianmu/container/activity/H5/WebViewActivity.java

@ -108,8 +108,8 @@ public class WebViewActivity extends BaseActivity {
static final int TYPE_GO_SAVESCREEN = 300;//导视通知跳转屏保
static final int TYPE_HINT_PASSWORD = 3;//隐藏密码输入框
static final int TYPE_START_SERVER = 4;//重新启动web服务
static String HtmlUrl = "http://127.0.0.1:8080/index.html";//webServer服务地址 http://192.168.1.218:5173/
// static String HtmlUrl = "http://192.168.1.196:5500/index.html";
//static String HtmlUrl = "http://127.0.0.1:8080/index.html";//webServer服务地址 http://192.168.1.218:5173/
static String HtmlUrl = "http://192.168.1.196:5500/index.html";
int time = 0;
private VideoView currentVideo;
private VideoView proVideo; // 当前正在切换的目标视频
@ -945,15 +945,15 @@ public class WebViewActivity extends BaseActivity {
public void connectLocalSocket() {
try {
//客户端不存在时 创建客户端设置监听事件
if (localSocketClient == null) initLocalSocketClient();
boolean open = localSocketClient.isOpen();
LoggerUtil.e("connectLocalSocket", "socket客户端连接状态:open="+open);
if (open){
if (localSocketClient != null &&
localSocketClient.getReadyState() == ReadyState.OPEN) {
LoggerUtil.e("connectLocalSocket", "socket客户端连接状态:open");
countConect = 0;
return;
return; // 连接正常,直接返回
}
countConect++;
if (localSocketClient == null) initLocalSocketClient();
localSocketClient.connect();
countConect++;
if(countConect>=100){
LoggerUtil.e("Socket: ", "socket未连接,设备重启");
}
@ -974,7 +974,6 @@ public class WebViewActivity extends BaseActivity {
localSocketClient.send(StringUtil.strSplice("{\"method\":\"/asr/stop\"}"));
}
});
localSocketClient.setOnMessageListener((conn, message) -> {
try {
TTSMessage messageBean = new Gson().fromJson(message, TTSMessage.class);
@ -1044,7 +1043,9 @@ public class WebViewActivity extends BaseActivity {
private void scheduleReconnect() {
destroyLocalSocketClient();
mainHandler.removeCallbacks(delayedTask);
mainHandler.postDelayed(delayedTask, 6000); // 3秒后重连
mainHandler.postDelayed(() -> {
new Thread(() -> connectLocalSocket()).start();
}, 6000); // 3秒后重连
}
private Runnable delayedTask = new Runnable() {
@Override
@ -1055,7 +1056,18 @@ public class WebViewActivity extends BaseActivity {
//销毁当前的客户端
public void destroyLocalSocketClient() {
if (localSocketClient == null) return;
localSocketClient.close();
localSocketClient = null;
try {
if (localSocketClient != null) {
// 避免在已关闭或未打开的状态下再次关闭
if (localSocketClient.isOpen()) {
localSocketClient.close(); // 主动发送关闭帧
}
localSocketClient = null;
}
} catch (Throwable t) {
// 这里必须捕获所有异常,防止它传播出去导致进程崩溃
LoggerUtil.e("destroyLocalSocketClient", "清理时发生异常");
}
}
}

4
app/src/main/java/qianmu/container/app/Constant.java

@ -29,9 +29,9 @@ public class Constant {
// public static String androidBoardType = "zc"; //设备板子型号 zc(卓策主板——王府井喜悦、杨浦中心医院)
// public static String androidBoardType = "sx"; //设备板子型号 sx(视想)
// public static String androidBoardType = "nova"; //设备板子型号 诺瓦盒子 华贸LED
// public static String androidBoardType = "huidu"; //设备板子型号 huidu(灰度主板) 罗湖寻车机
public static String androidBoardType = "huidu"; //设备板子型号 huidu(灰度主板) 罗湖寻车机
// public static String androidBoardType = "bv"; //设备板子型号 Bv-3588M
public static String androidBoardType = "smt"; //设备板子型号 视美泰
// public static String androidBoardType = "smt"; //设备板子型号 视美泰
public static String TTSFac = "sbc"; // 语音识别厂家 kdxf--科大讯飞 sbc-思必驰
public static final String VOID_STOP = "void_stop";//

3
app/src/main/java/qianmu/container/mqtt/MQTTService.java

@ -63,6 +63,7 @@ import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLContext;
@ -674,7 +675,7 @@ public class MQTTService extends Service {
pw.println("exit");
pw.flush();
try {
process.waitFor();
process.waitFor(2500, TimeUnit.MILLISECONDS);;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();

Loading…
Cancel
Save