From 32643dd5cbb43741487a4486583834830695bb82 Mon Sep 17 00:00:00 2001 From: gaozl Date: Wed, 14 Jan 2026 10:30:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20nova=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- .../main/java/qianmu/container/app/Constant.java | 4 ++-- .../qianmu/container/handler/ContainerHandler.java | 13 +++++++++++++ .../java/qianmu/container/mqtt/MQTTService.java | 1 + .../main/java/qianmu/container/util/DeviceUtil.java | 11 ++++++++++- .../java/qianmu/container/util/SignWayUtil.java | 6 ++++++ 6 files changed, 33 insertions(+), 4 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4382ecf..e4ad6da 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,7 +12,7 @@ android { minSdkVersion 22 targetSdkVersion 30 versionCode 6 - versionName "V2.0.8.10" + versionName "V2.0.8.11" // 2.0.8.2 修改网络连接证书设置、定时开关机设置 // 2.0.8.3 获取mac修改 // V2.0.8.5 同屏优化 diff --git a/app/src/main/java/qianmu/container/app/Constant.java b/app/src/main/java/qianmu/container/app/Constant.java index 7b2dba6..ab395d1 100644 --- a/app/src/main/java/qianmu/container/app/Constant.java +++ b/app/src/main/java/qianmu/container/app/Constant.java @@ -24,12 +24,12 @@ public class Constant { public static String mqttState = ""; // 屏幕连接方式 public static String TTSHome=""; // sbc-思必驰 kdxf-科大讯飞 //public static String androidBoardType = ""; //设备板子型号 无固定版 - public static String androidBoardType = "ys"; // 设备板子型号 ys(亿晟) 北京颐堤港定制touch + // public static String androidBoardType = "ys"; // 设备板子型号 ys(亿晟) 北京颐堤港定制touch // public static String androidBoardType = "xwst"; //设备板子型号 xwst(欣威视通3399) // public static String androidBoardType = "xwst2"; //设备板子型号 xwst2(欣威视通3588、T982、3576) // public static String androidBoardType = "zc"; //设备板子型号 zc(卓策主板——王府井喜悦、杨浦中心医院) // public static String androidBoardType = "sx"; //设备板子型号 sx(视想) - // public static String androidBoardType = "nova"; //设备板子型号 诺瓦盒子 华贸LED + public static String androidBoardType = "nova"; //设备板子型号 诺瓦盒子 华贸LED // public static String androidBoardType = "huidu"; //设备板子型号 huidu(灰度主板) 罗湖寻车机 // public static String androidBoardType = "bv"; //设备板子型号 Bv-3588M // public static String androidBoardType = "smt"; //设备板子型号 视美泰 diff --git a/app/src/main/java/qianmu/container/handler/ContainerHandler.java b/app/src/main/java/qianmu/container/handler/ContainerHandler.java index 4a84774..89a54c3 100644 --- a/app/src/main/java/qianmu/container/handler/ContainerHandler.java +++ b/app/src/main/java/qianmu/container/handler/ContainerHandler.java @@ -27,6 +27,7 @@ import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.lang.ref.WeakReference; +import java.util.Calendar; import java.util.List; import qianmu.container.activity.BaseActivity; @@ -144,6 +145,10 @@ public class ContainerHandler extends Handler { } ); getMemory(); + if("nova".equals(Constant.androidBoardType) && isExactlyNineClock()){ + LoggerUtil.e("reboot: ","设备重启"); + SignWayUtil.reboot(); + } // watchDog(); getCoreServiceState(); // DeviceData.getPrimaryMachine(null, this::updateClientStateByIP); @@ -153,6 +158,14 @@ public class ContainerHandler extends Handler { LoggerUtil.e("heartBeatDelayTime", StringUtil.getThrowableStr(t)); } } + // nova 设备每天两点重启一次 + public boolean isExactlyNineClock() { + // 获取系统当前的日历时间对象(包含年月日时分秒) + Calendar calendar = Calendar.getInstance(); + int hour = calendar.get(Calendar.HOUR_OF_DAY); + int minute = calendar.get(Calendar.MINUTE); + return hour == 2 && minute <2; + } //获取屏幕状态 private static void printDisplayStatus() { DisplayManager dm = (DisplayManager) MyApplication.getInstance().getSystemService(Context.DISPLAY_SERVICE); diff --git a/app/src/main/java/qianmu/container/mqtt/MQTTService.java b/app/src/main/java/qianmu/container/mqtt/MQTTService.java index 24ee302..4b77d60 100644 --- a/app/src/main/java/qianmu/container/mqtt/MQTTService.java +++ b/app/src/main/java/qianmu/container/mqtt/MQTTService.java @@ -737,6 +737,7 @@ public class MQTTService extends Service { } catch (Exception e) { LoggerUtil.e("screenShot","截屏失败"); } finally { + LoggerUtil.e("screenShot","截屏失败"); singleThreadExecutor.shutdown(); try { if (!singleThreadExecutor.awaitTermination(5, TimeUnit.SECONDS)) { diff --git a/app/src/main/java/qianmu/container/util/DeviceUtil.java b/app/src/main/java/qianmu/container/util/DeviceUtil.java index 980ec01..f5e063a 100644 --- a/app/src/main/java/qianmu/container/util/DeviceUtil.java +++ b/app/src/main/java/qianmu/container/util/DeviceUtil.java @@ -156,6 +156,15 @@ public class DeviceUtil { } } + //获取有线网络mac + public static String getLanMac(){ + + ConnectivityManager cm = (ConnectivityManager) MyApplication.getInstance().getApplicationContext().getSystemService(Service.CONNECTIVITY_SERVICE); + NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo(); + String extraInfo = activeNetworkInfo.getExtraInfo(); + LoggerUtil.e("mac获取","mac:"+extraInfo); + return extraInfo; + } /** * 获取mac * */ @@ -297,7 +306,7 @@ public class DeviceUtil { @SuppressLint("HardwareIds") public static String getWifiMacAddress() { try { - WifiManager wifiManager = (WifiManager) MyApplication.getInstance().getSystemService(Context.WIFI_SERVICE); + WifiManager wifiManager = (WifiManager) MyApplication.getInstance().getApplicationContext().getSystemService(Context.WIFI_SERVICE); if (wifiManager != null) { WifiInfo wifiInfo = wifiManager.getConnectionInfo(); return wifiInfo.getMacAddress(); diff --git a/app/src/main/java/qianmu/container/util/SignWayUtil.java b/app/src/main/java/qianmu/container/util/SignWayUtil.java index ab42619..72d9f23 100644 --- a/app/src/main/java/qianmu/container/util/SignWayUtil.java +++ b/app/src/main/java/qianmu/container/util/SignWayUtil.java @@ -388,6 +388,12 @@ public class SignWayUtil { zcapi zcApi=new zcapi(); zcApi.getContext(MyApplication.getInstance()); return zcApi.getEthMacAddress("eth0"); + }else if(Constant.androidBoardType.equals("nova")){ + String mac = DeviceUtil.getLanMac(); + if(StringUtil.isEmpty(mac)){ + mac = DeviceUtil.getMacFromHardware(); + } + return mac; }else if(Constant.androidBoardType.equals("huidu")){ HuiduTech helper = new HuiduTech(MyApplication.getInstance());