Browse Source

fix: NOVA

master
高志龙 9 months ago
parent
commit
676a03990c
  1. BIN
      app/release/app-release.apk
  2. BIN
      app/release/app_andorid_V2_诺瓦设备iot分屏容器_V2.0.7.30.apk
  3. 4
      app/src/main/java/qianmu/container/app/Constant.java
  4. 86
      app/src/main/java/qianmu/container/util/DeviceUtil.java
  5. 8
      app/src/main/java/qianmu/container/util/SignWayUtil.java

BIN
app/release/app-release.apk

Binary file not shown.

BIN
app/release/app_andorid_V2_诺瓦设备iot分屏容器_V2.0.7.30.apk

Binary file not shown.

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

@ -23,12 +23,12 @@ public class Constant {
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 = "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"; //设备板子型号 视美泰

86
app/src/main/java/qianmu/container/util/DeviceUtil.java

@ -10,6 +10,7 @@ import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Environment;
import android.os.StatFs;
import android.util.DisplayMetrics;
@ -19,6 +20,7 @@ import java.io.File;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.Socket;
import java.net.SocketException;
import java.util.Enumeration;
import java.util.List;
@ -45,7 +47,11 @@ public class DeviceUtil {
try {
if(Constant.androidBoardType.equals("nova")){
//诺瓦
return getEthIpAddress();
String ip = getEthIpAddress();
if(StringUtil.isEmpty(ip)){
ip = getLocalIPByWIFI();
}
return ip;
}else {
String allIP = "";
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
@ -92,7 +98,7 @@ public class DeviceUtil {
//获取有线网络ip
public static String getEthIpAddress() {
String infaceName = "eth0";
String ip = "0.0.0.0";
String ip = "";
try {
Enumeration<NetworkInterface> netInterface = NetworkInterface.getNetworkInterfaces();
while (netInterface.hasMoreElements()) {
@ -100,12 +106,10 @@ public class DeviceUtil {
if (!inface.isUp()) {
continue;
}
// eth0 有线网络判断
if (!infaceName.equals(inface.getDisplayName())) {
continue;
}
Enumeration<InetAddress> netAddressList = inface.getInetAddresses();
while (netAddressList.hasMoreElements()) {
InetAddress inetAddress = netAddressList.nextElement();
@ -136,27 +140,36 @@ public class DeviceUtil {
* @return
*/
public static String getLocalIPByWIFI() {
String ip="";
try {
//获取wifi服务
WifiManager wifiManager = (WifiManager) MyApplication.getInstance().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if (!wifiManager.isWifiEnabled()) wifiManager.setWifiEnabled(true);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
return intToIp(ipAddress);
} catch (Throwable t) {
LoggerUtil.e("getLocalIPByWIFI", StringUtil.getThrowableStr(t));
return "";
Socket socket = new Socket("www.baidu.com",80);
ip = socket.getLocalAddress().toString();
LoggerUtil.e("GETIP: ", ip);
} catch (Exception e) {
Log.e(TAG, "网络接口遍历获取IP失败", e);
}
if("".equals(ip)){
try {
//获取wifi服务
WifiManager wifiManager = (WifiManager) MyApplication.getInstance().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if (!wifiManager.isWifiEnabled()) wifiManager.setWifiEnabled(true);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
ip = intToIp(ipAddress);
} catch (Throwable t) {
LoggerUtil.e("getLocalIPByWIFI", StringUtil.getThrowableStr(t));
return "";
}
}
return ip;
}
private static String intToIp(int i) {
String first = String.valueOf((i & 0xFF));
String second = String.valueOf(((i >> 8) & 0xFF));
String third = String.valueOf(((i >> 16) & 0xFF));
String fourth = String.valueOf((i >> 24 & 0xFF));
return StringUtil.strSplice(first, ".", second, ".", third, ".", fourth);
}
@ -195,23 +208,38 @@ public class DeviceUtil {
* @return
*/
public static String getLocalMacAddressFromIp() {
String strMacAddr = null;
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();
}
return macAddress;
}
/**
* 通过网络接口获取MAC地址备选方案
*/
private static String getMacFromNetworkInterface() {
try {
//获得IpD地址
InetAddress ip = getLocalInetAddress();
byte[] b = NetworkInterface.getByInetAddress(ip).getHardwareAddress();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < b.length; i++) {
if (i != 0) {
buffer.append(':');
}
String str = Integer.toHexString(b[i] & 0xFF);
buffer.append(str.length() == 1 ? 0 + str : str);
java.net.NetworkInterface networkInterface = java.net.NetworkInterface.getByName("wlan0");
if (networkInterface == null) return "";
byte[] macBytes = networkInterface.getHardwareAddress();
if (macBytes == null) return "";
StringBuilder mac = new StringBuilder();
for (byte b : macBytes) {
mac.append(String.format("%02X:", b));
}
strMacAddr = buffer.toString().toUpperCase();
if (mac.length() > 0) {
mac.deleteCharAt(mac.length() - 1);
}
return mac.toString();
} catch (Exception e) {
Log.e(TAG, "通过网络接口获取MAC失败", e);
return "";
}
return strMacAddr;
}
/**
* 获取移动设备本地IP

8
app/src/main/java/qianmu/container/util/SignWayUtil.java

@ -53,7 +53,6 @@ public class SignWayUtil {
zcapi zcApi=new zcapi();
zcApi.getContext(MyApplication.getInstance());
zcApi.shutDown();
}else if(Constant.androidBoardType.equals("nova")){
EventBus.getDefault().post(new MessageEvent(Constant.NOVA_SCREEN_POWER_CLOSE));
}else if(Constant.androidBoardType.equals("huidu")){
@ -430,8 +429,11 @@ public class SignWayUtil {
zcApi.getContext(MyApplication.getInstance());
return zcApi.getEthMacAddress("eth0");
}if(Constant.androidBoardType.equals("nova")){
return DeviceUtil.getLanMac();
// return DeviceUtil.getMacFromHardware();
String mac = DeviceUtil.getLanMac();
if(StringUtil.isEmpty(mac)){
mac = DeviceUtil.getMacFromHardware();
}
return mac;
}
else if(Constant.androidBoardType.equals("huidu")){

Loading…
Cancel
Save