Browse Source

fix: mac获取修改

master
高志龙 7 months ago
parent
commit
cee53f1c90
  1. 1
      app/build.gradle
  2. 4
      app/src/main/java/qianmu/container/app/Constant.java
  3. 2
      app/src/main/java/qianmu/container/app/MyApplication.java
  4. 72
      app/src/main/java/qianmu/container/util/DeviceUtil.java
  5. 13
      app/src/main/java/qianmu/container/util/SignWayUtil.java

1
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'

4
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(卓策主板——王府井喜悦、杨浦中心医院)

2
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());

72
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<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
// NetworkInterface intf = en.nextElement();
// for (Enumeration<InetAddress> 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 "";
}
}

13
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();

Loading…
Cancel
Save