From cee53f1c90d8d3769d60a3d5b84c5f3e101e1446 Mon Sep 17 00:00:00 2001 From: gaozl Date: Tue, 18 Nov 2025 14:10:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20mac=E8=8E=B7=E5=8F=96=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 1 + .../java/qianmu/container/app/Constant.java | 4 +- .../qianmu/container/app/MyApplication.java | 2 +- .../qianmu/container/util/DeviceUtil.java | 72 ++++++------------- .../qianmu/container/util/SignWayUtil.java | 13 +--- 5 files changed, 29 insertions(+), 63 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 68d59e8..d43f0e6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,6 +13,7 @@ android { targetSdkVersion 30 versionCode 6 versionName "V2.0.8.2" + // 2.0.8.2 修改网络连接证书设置 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles 'consumer-rules.pro' diff --git a/app/src/main/java/qianmu/container/app/Constant.java b/app/src/main/java/qianmu/container/app/Constant.java index 387ff7e..f1f337a 100644 --- a/app/src/main/java/qianmu/container/app/Constant.java +++ b/app/src/main/java/qianmu/container/app/Constant.java @@ -22,8 +22,8 @@ public class Constant { public static String screenType = "HDMI"; // 欣威视通3399设备为假关机 HDMI连接:可以用来判断是否为关机状态 LVDS连接:只能用定时关机时间来判断 public static boolean newGuide = false; // 指路机类型,true:新版指路机 false:老板指路机(流花) public static String mqttState = ""; // 屏幕连接方式 - // public static String androidBoardType = ""; //设备板子型号 无固定版 - public static String androidBoardType = "ys"; // 设备板子型号 ys(亿晟) 北京颐堤港定制touch + public static String androidBoardType = ""; //设备板子型号 无固定版 + // 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(卓策主板——王府井喜悦、杨浦中心医院) diff --git a/app/src/main/java/qianmu/container/app/MyApplication.java b/app/src/main/java/qianmu/container/app/MyApplication.java index 1b19433..030911d 100644 --- a/app/src/main/java/qianmu/container/app/MyApplication.java +++ b/app/src/main/java/qianmu/container/app/MyApplication.java @@ -207,7 +207,7 @@ public class MyApplication extends Application { String errorLog = StringUtil.strSplice( MyApplication.getInstance().dateTimeFormat.format(new Date(timeMillis)), ":\n", throwable.getMessage(), "\n", sw.toString()); - LoggerUtil.e("errorLog", errorLog); + LoggerUtil.e("APP崩溃", errorLog); restartApp(); Intent intent = new Intent(Constant.ACTION_APP_CRASH); intent.putExtra(Constant.PACKAGE_NAME, DeviceUtil.getPackageName()); diff --git a/app/src/main/java/qianmu/container/util/DeviceUtil.java b/app/src/main/java/qianmu/container/util/DeviceUtil.java index a3e3eaa..bc09945 100644 --- a/app/src/main/java/qianmu/container/util/DeviceUtil.java +++ b/app/src/main/java/qianmu/container/util/DeviceUtil.java @@ -22,6 +22,7 @@ import java.net.InetAddress; import java.net.NetworkInterface; import java.net.Socket; import java.net.SocketException; +import java.util.Collections; import java.util.Enumeration; import java.util.List; @@ -71,30 +72,6 @@ public class DeviceUtil { return getLocalIPByWIFI(); } -// public static String getLocalIP() { -// try { -// String allIP = ""; -// for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) { -// NetworkInterface intf = en.nextElement(); -// for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) { -// InetAddress inetAddress = enumIpAddr.nextElement(); -// allIP += inetAddress.getHostAddress() + "\n"; -// if (!inetAddress.isLoopbackAddress() && !inetAddress.isLinkLocalAddress()) -// return inetAddress.getHostAddress(); -// } -// } -// } catch (Throwable t) { -// LoggerUtil.e("getLocalIP", StringUtil.getThrowableStr(t)); -// } -// -// return getLocalIPByWIFI(); -// } - - //有线网口ip -// public static String getLocalIP() { -// return getEthIpAddress(); -// } - //获取有线网络ip public static String getEthIpAddress() { String infaceName = "eth0"; @@ -125,15 +102,6 @@ public class DeviceUtil { return ip; } - //获取有线网络mac - public static String getLanMac(){ - - ConnectivityManager cm = (ConnectivityManager) MyApplication.getInstance().getApplicationContext().getSystemService(Service.CONNECTIVITY_SERVICE); - NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo(); - String extraInfo = activeNetworkInfo.getExtraInfo(); - return extraInfo; - } - /** * 从wifi连接中获取ip地址 * @@ -209,35 +177,39 @@ public class DeviceUtil { */ public static String getLocalMacAddressFromIp() { String macAddress=""; - WifiManager wifiManager = (WifiManager) MyApplication.getInstance().getApplicationContext().getSystemService(Context.WIFI_SERVICE); - WifiInfo wifiInfo = wifiManager.getConnectionInfo(); - macAddress = wifiInfo.getBSSID(); - if(StringUtil.isEmpty(macAddress)){ - macAddress = getMacFromNetworkInterface(); + macAddress = getMacFromNetworkInterface("wlan0"); + if (!StringUtil.isEmpty(macAddress)) { + return macAddress; + } + macAddress = getMacFromNetworkInterface("eth0"); + if (!StringUtil.isEmpty(macAddress)) { + return macAddress; } return macAddress; } /** * 通过网络接口获取MAC地址(备选方案) */ - private static String getMacFromNetworkInterface() { + private static String getMacFromNetworkInterface(String interfaceName) { try { - java.net.NetworkInterface networkInterface = java.net.NetworkInterface.getByName("wlan0"); - if (networkInterface == null) return ""; - + NetworkInterface networkInterface = NetworkInterface.getByName(interfaceName); + if (networkInterface == null) { + return ""; + } byte[] macBytes = networkInterface.getHardwareAddress(); - if (macBytes == null) return ""; - - StringBuilder mac = new StringBuilder(); + if (macBytes == null) { + return ""; + } + StringBuilder sb = new StringBuilder(); for (byte b : macBytes) { - mac.append(String.format("%02X:", b)); + sb.append(String.format("%02X:", b)); } - if (mac.length() > 0) { - mac.deleteCharAt(mac.length() - 1); + if (sb.length() > 0) { + sb.deleteCharAt(sb.length() - 1); } - return mac.toString(); + return sb.toString(); } catch (Exception e) { - Log.e(TAG, "通过网络接口获取MAC失败", e); + e.printStackTrace(); return ""; } } diff --git a/app/src/main/java/qianmu/container/util/SignWayUtil.java b/app/src/main/java/qianmu/container/util/SignWayUtil.java index 93a4c35..3e29e5e 100644 --- a/app/src/main/java/qianmu/container/util/SignWayUtil.java +++ b/app/src/main/java/qianmu/container/util/SignWayUtil.java @@ -368,7 +368,8 @@ public class SignWayUtil { }else { return ""; } - }if(Constant.androidBoardType.equals("xwst2")){ + } + if(Constant.androidBoardType.equals("xwst2")){ return SdkApi.getInstance().DeviceInfo().getEthMac(); }else if(Constant.androidBoardType.equals("ys")){ MyManager manager = MyManager.getInstance(MyApplication.getInstance()); @@ -389,14 +390,7 @@ public class SignWayUtil { zcapi zcApi=new zcapi(); zcApi.getContext(MyApplication.getInstance()); return zcApi.getEthMacAddress("eth0"); - }if(Constant.androidBoardType.equals("nova")){ - String mac = DeviceUtil.getLanMac(); - if(StringUtil.isEmpty(mac)){ - mac = DeviceUtil.getMacFromHardware(); - } - return mac; - } - else if(Constant.androidBoardType.equals("huidu")){ + }else if(Constant.androidBoardType.equals("huidu")){ HuiduTech helper = new HuiduTech(MyApplication.getInstance()); if(!helper.getEthMac().isEmpty()){ @@ -407,7 +401,6 @@ public class SignWayUtil { LoggerUtil.e("getEthMacAddress", "wifimac:" + helper.getWifiMac()); return helper.getWifiMac(); } - } else { return DeviceUtil.getMacFromHardware();