From 7c8ce9b9a7d3fc1aaa4a621e86415b25ad10a34f Mon Sep 17 00:00:00 2001
From: panlili2024 <14743743+panlili2024@user.noreply.gitee.com>
Date: 星期三, 19 三月 2025 09:36:28 +0800
Subject: [PATCH] 添加source屏扫码流程
---
HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/IpUtils.java | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 150 insertions(+), 4 deletions(-)
diff --git a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/IpUtils.java b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/IpUtils.java
index 832cf2f..8fa0785 100644
--- a/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/IpUtils.java
+++ b/HDLSDK/hdl-connect/src/main/java/com/hdl/sdk/common/utils/IpUtils.java
@@ -3,6 +3,10 @@
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.hdl.sdk.connect.config.HDLLinkConfig;
import java.net.InetAddress;
import java.net.InterfaceAddress;
@@ -15,10 +19,10 @@
*/
public class IpUtils {
- /**
- * @return 骞挎挱鍦板潃
- */
- public static String getBroadcastAddress() {
+// /**
+// * @return 骞挎挱鍦板潃
+// */
+ /*public static String getBroadcastAddress() {
// try {
// for (Enumeration<NetworkInterface> niEnum = NetworkInterface.getNetworkInterfaces();
// niEnum.hasMoreElements(); ) {
@@ -34,6 +38,45 @@
// } catch (SocketException e) {
// e.printStackTrace();
// }
+ return "255.255.255.255";
+ }*/
+
+
+ /**
+ * @return 骞挎挱鍦板潃
+ */
+ public static synchronized String getBroadcastAddress() {
+ try {
+ if (!TextUtils.isEmpty(HDLLinkConfig.getInstance().getNetworkName())) {
+ for (Enumeration<NetworkInterface> niEnum = NetworkInterface.getNetworkInterfaces();
+ niEnum.hasMoreElements(); ) {
+ NetworkInterface ni = niEnum.nextElement();
+ if (!ni.isLoopback() && ni.getName().equalsIgnoreCase(HDLLinkConfig.getInstance().getNetworkName())) {
+ for (InterfaceAddress interfaceAddress : ni.getInterfaceAddresses()) {
+ if (interfaceAddress.getBroadcast() != null) {
+ Log.d("TAG", "----->ni.getName()= " + ni.getName() + " ip= " + interfaceAddress.getBroadcast().toString().substring(1));
+ return interfaceAddress.getBroadcast().toString().substring(1);
+ }
+ }
+ }
+ }
+
+ for (Enumeration<NetworkInterface> niEnum = NetworkInterface.getNetworkInterfaces();
+ niEnum.hasMoreElements(); ) {
+ NetworkInterface ni = niEnum.nextElement();
+ if (!ni.isLoopback()) {
+ for (InterfaceAddress interfaceAddress : ni.getInterfaceAddresses()) {
+ if (interfaceAddress.getBroadcast() != null) {
+ Log.d("TAG", "----->ip= " + interfaceAddress.getBroadcast().toString().substring(1));
+ return interfaceAddress.getBroadcast().toString().substring(1);
+ }
+ }
+ }
+ }
+ }
+ } catch (SocketException e) {
+ e.printStackTrace();
+ }
return "255.255.255.255";
}
@@ -86,4 +129,107 @@
((i >> 16) & 0xFF) + "." +
(i >> 24 & 0xFF);
}
+
+ private static String getWifiManagerAddress(Context context) {
+ try {
+ if (context != null) {
+ WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
+ if (wifiManager != null && wifiManager.isWifiEnabled()) {
+ WifiInfo wifiInfo = wifiManager.getConnectionInfo();
+ int ipAddress = wifiInfo.getIpAddress();
+ return intToIp(ipAddress);
+ }
+ }
+ } catch (Exception ignored) {
+ }
+ return null;
+ }
+
+ public static String getWifiIpV4Address(Context context) {
+ try {
+ //鐩存帴浠巜ifiManager鑾峰彇
+ String managerAddress = getWifiManagerAddress(context);
+ if (!TextUtils.isEmpty(managerAddress)) {
+ return managerAddress;
+ }
+
+ Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces();
+ while (enumeration.hasMoreElements()) {
+ NetworkInterface network = enumeration.nextElement();
+ if (network == null || network.isVirtual() || !network.isUp() || network.isLoopback() || !network.getName().equalsIgnoreCase("eth0")) {
+ continue;
+ } else {
+ Enumeration<InetAddress> addresses = network.getInetAddresses();
+ while (addresses.hasMoreElements()) {
+ InetAddress address = addresses.nextElement();
+ if (!address.isLoopbackAddress() && !address.isAnyLocalAddress()
+ && !address.isLinkLocalAddress()) {
+ String hostAddress = address.getHostAddress();
+ if (hostAddress != null) {
+ boolean isIPv4 = hostAddress.indexOf(':') < 0;
+ if (isIPv4) return hostAddress;
+ }
+
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ public static String getEth0IpV4Address() {
+ try {
+ Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces();
+ while (enumeration.hasMoreElements()) {
+ NetworkInterface network = enumeration.nextElement();
+ if (network == null || network.isVirtual() || !network.isUp() || network.isLoopback() || !network.getName().equalsIgnoreCase("eth0")) {
+ continue;
+ } else {
+ Enumeration<InetAddress> addresses = network.getInetAddresses();
+
+ while (addresses.hasMoreElements()) {
+ InetAddress address = addresses.nextElement();
+ if (!address.isLoopbackAddress() && !address.isAnyLocalAddress()
+ && !address.isLinkLocalAddress()) {
+ String hostAddress = address.getHostAddress();
+ if (hostAddress != null) {
+ boolean isIPv4 = hostAddress.indexOf(':') < 0;
+ if (isIPv4) return hostAddress;
+ }
+
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ /**
+ * @return 鑾峰彇鍏ㄩ儴鏈夋晥ip鍦板潃, 浼樺厛杩斿洖鏈夌嚎ip
+ */
+ public static String getIpV4Address(Context context) {
+
+ try {
+ String eth0IpV4Address = getEth0IpV4Address();
+ if (!TextUtils.isEmpty(eth0IpV4Address)) {
+ return eth0IpV4Address;
+ }
+ String wifiIpV4Address = getWifiIpV4Address(context);
+ if (!TextUtils.isEmpty(wifiIpV4Address)) {
+ return wifiIpV4Address;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
}
--
Gitblit v1.8.0