From cd44a180c4d4a3af3120576e491bde147cfaaf9d Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期六, 18 一月 2020 10:15:58 +0800
Subject: [PATCH] 2020-1-18 1.增加默认获取WiFi连接的广播配置方法。

---
 app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java                       |    2 ++
 hdl_core/build.gradle                                                                  |    2 +-
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/Util/NetUtil/NetWorkUtil.java              |   44 ++++++++++++++++++++++++++++++++++++++++++++
 hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java |    6 +++++-
 4 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java
index 5b09f1c..538b2d3 100644
--- a/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java
+++ b/app/src/main/java/com/hdl/sdk/hdl_sdk/activity/MainActivity.java
@@ -25,6 +25,7 @@
 import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.DevicesInfoEvent;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.ThirdPartyBgmInfoEvent;
 import com.hdl.sdk.hdl_core.HDLDeviceManger.EventBusEvent.WarningInfoEvent;
+import com.hdl.sdk.hdl_core.Util.NetUtil.NetWorkUtil;
 import com.hdl.sdk.hdl_sdk.R;
 import com.hdl.sdk.hdl_sdk.utlis.HDLLog;
 
@@ -54,6 +55,7 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
+        NetWorkUtil.setIsGetWifiBroadCast(true);
         HDLCommand.init(this);
 //        /**閰嶇疆鏄惁寮�鍚疭DK鎵撳嵃鏃ュ織锛岄粯璁や负鎵撳紑*/
 //        HDLCommand.setHDLLogOpen(false);//
diff --git a/hdl_core/build.gradle b/hdl_core/build.gradle
index 6ac4331..06da373 100644
--- a/hdl_core/build.gradle
+++ b/hdl_core/build.gradle
@@ -7,7 +7,7 @@
         minSdkVersion 17
         targetSdkVersion 28
         versionCode 1
-        versionName "1.0.5"
+        versionName "1.0.6"
 
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
 
diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java
index ddd3bda..114e312 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/HDLDeviceManger/Core/HDLDeviceManager.java
@@ -66,6 +66,8 @@
     public static List<String> rcuIpList = new ArrayList<>();//缁熻Rcu ip鍦板潃鍒楄〃
     public static List<DevicesData> devicesDataList = new ArrayList<>();//缁熻鎼滅储鍒楄〃
     public static List<DevicesData> realDevicesDataList = new ArrayList<>();//缁熻鎼滅储鍒楄〃
+
+
     private static Context viewContext;
     public static List<ListRemarks> listRemarks = new ArrayList<>();
     public static List<RcuLight> rcuLightList = new ArrayList<>();
@@ -108,7 +110,9 @@
 //        HDLUdpCore.initMulticastSocket6000();
     }
 
-
+    public static Context getViewContext() {
+        return viewContext;
+    }
 
     /**
      * 閲婃斁Socket
diff --git a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Util/NetUtil/NetWorkUtil.java b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Util/NetUtil/NetWorkUtil.java
index b030684..8e29bfd 100644
--- a/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Util/NetUtil/NetWorkUtil.java
+++ b/hdl_core/src/main/java/com/hdl/sdk/hdl_core/Util/NetUtil/NetWorkUtil.java
@@ -7,6 +7,7 @@
 import android.net.wifi.WifiInfo;
 import android.net.wifi.WifiManager;
 
+import com.hdl.sdk.hdl_core.HDLDeviceManger.Core.HDLDeviceManager;
 import com.hdl.sdk.hdl_core.Util.LogUtil.HDLLog;
 
 import java.net.InetAddress;
@@ -21,6 +22,17 @@
  */
 
 public class NetWorkUtil {
+
+    private static boolean isGetWifiBroadCast = false;
+
+    public static boolean isIsGetWifiBroadCast() {
+        return isGetWifiBroadCast;
+    }
+
+    public static void setIsGetWifiBroadCast(boolean isGetWifiBroadCast) {
+        NetWorkUtil.isGetWifiBroadCast = isGetWifiBroadCast;
+    }
+
     public static final int GET_LOCAL_IP = 1;
     public static final int GET_MAC_ADDRESS = 2;
     public static final int GET_NETMASK = 3;
@@ -119,6 +131,26 @@
     }
 
     public static String getLocalBroadCast() {
+        String broadCastIp =  "255.255.255.255";
+        try {
+            //2020-1-17 鏂版垨鑰匢P鍦板潃鏂规硶
+            if (isGetWifiBroadCast) {
+                broadCastIp = getWifiBroadAddress();
+            } else {
+                broadCastIp = getLocalBroadCastOld();
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        if (broadCastIp == null) {
+            HDLLog.E("getLocalBroadCast error ip null");
+        }
+        return broadCastIp;
+    }
+
+    public static String getLocalBroadCastOld() {
         String broadCastIp = null;
         try {
             Enumeration<?> netInterfaces = (Enumeration<?>) NetworkInterface.getNetworkInterfaces();
@@ -145,7 +177,19 @@
         return broadCastIp;
     }
 
+    public static String getWifiBroadAddress() {
 
+        String ipaddress = "255.255.255.255";
+        try {
+            WifiManager wifimanage = (WifiManager) HDLDeviceManager.getViewContext().getApplicationContext().getSystemService(Context.WIFI_SERVICE);// 鑾峰彇WifiManager
+            DhcpInfo dhcpInfo = wifimanage.getDhcpInfo();
+            ipaddress = intToIp((dhcpInfo.ipAddress) | (~dhcpInfo.netmask));
+
+        } catch (Exception ex) {
+            ipaddress = "255.255.255.255";
+        }
+        return ipaddress;
+    }
 
 
     public static InetAddress getLocalHostLANAddress() throws Exception {

--
Gitblit v1.8.0