From 8814f3f0828e6ac652a29cc9de9f971fd55bca5b Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 07 五月 2025 14:54:42 +0800 Subject: [PATCH] 2025年05月07日14:54:39 --- app/src/main/java/com/hdl/photovoltaic/utils/WifiUtils.java | 81 +++++++++++++++++++++++++++++++--------- 1 files changed, 62 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/hdl/photovoltaic/utils/WifiUtils.java b/app/src/main/java/com/hdl/photovoltaic/utils/WifiUtils.java index f826573..dd1c82d 100644 --- a/app/src/main/java/com/hdl/photovoltaic/utils/WifiUtils.java +++ b/app/src/main/java/com/hdl/photovoltaic/utils/WifiUtils.java @@ -2,6 +2,7 @@ import android.Manifest; +import android.app.Application; import android.content.Context; import android.content.pm.PackageManager; import android.net.wifi.ScanResult; @@ -9,10 +10,14 @@ import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.SystemClock; +import android.text.TextUtils; import android.util.Log; import androidx.core.app.ActivityCompat; + +import com.hdl.photovoltaic.HDLApp; +import com.hdl.photovoltaic.other.HdlLogLogic; import java.util.ArrayList; import java.util.List; @@ -20,14 +25,25 @@ public class WifiUtils { - + private static WifiUtils mWifiUtils; public WifiManager mWifiManager; public WifiManager.WifiLock mWifiLock; public Context mContext; - public WifiUtils(Context context) { - this.mContext = context; + public static WifiUtils getInstance() { + if (null == mWifiUtils) { + synchronized (WifiUtils.class) { + if (null == mWifiUtils) { + mWifiUtils = new WifiUtils(); + } + } + } + return mWifiUtils; + } + + public WifiUtils() { + this.mContext = HDLApp.getInstance(); mWifiManager = (WifiManager) this.mContext.getSystemService(Context.WIFI_SERVICE); } @@ -36,18 +52,17 @@ * * @return 杩斿洖ssid鍚嶇О */ - public String getCurrentConnectWifiSsid() { - WifiInfo wifiInfo = this.getCurrentConnectWifiInfo(); - return wifiInfo.getSSID().replace("\"", ""); - } - - /** - * 鑾峰彇褰撳墠杩炴帴鐨剋ifi - * - * @return wifi淇℃伅 - */ - public WifiInfo getCurrentConnectWifiInfo() { - return (mWifiManager == null) ? null : mWifiManager.getConnectionInfo(); + public MyWifiInfo getCurrentConnectWifiInfo() { + if (mWifiManager == null) { + return new MyWifiInfo(); + } + MyWifiInfo myWifiInfo = new MyWifiInfo(); + try { + WifiInfo wifiInfo = mWifiManager.getConnectionInfo(); + myWifiInfo.setSSID(wifiInfo.getSSID().replace("\"", "")); + } catch (Exception ignored) { + } + return myWifiInfo; } /** @@ -99,17 +114,45 @@ //鑾峰彇鎵弿缁撴灉 public List<ScanResult> getScanResult() { - List<ScanResult> results = new ArrayList<>(); + List<ScanResult> newResults = new ArrayList<>(); + try { if (mWifiManager != null) { // mWifiManager.startScan(); // SystemClock.sleep(1000); - results = mWifiManager.getScanResults(); + List<ScanResult> results = mWifiManager.getScanResults(); + for (int i = 0; i < results.size(); i++) { + ScanResult scanResult = results.get(i); + if (scanResult == null || TextUtils.isEmpty(scanResult.SSID)) { + continue; + } + if (!checkRepetition(newResults, scanResult)) { + //涓嶅瓨鍦ㄥ氨娣诲姞 + newResults.add(scanResult); + } + } + } } catch (Exception ex) { - Log.d("WifiUtils", ex.getMessage()); + HdlLogLogic.print("WifiUtils----->" + ex.getMessage(), false); } - return results; + return newResults; + } + + /** + * 妫�鏌ュ垪琛ㄦ暟鎹槸鍚﹂噸澶� + * + * @param list 婧愬垪琛ㄦ暟鎹� + * @param scanResult 琚鏌ュ璞� + * @return true琛ㄧず瀛樺湪锛宖alse琛ㄧず涓嶅瓨鍦� + */ + public boolean checkRepetition(List<ScanResult> list, ScanResult scanResult) { + for (int i = 0; i < list.size(); i++) { + if (list.get(i).SSID.equals(scanResult.SSID)) { + return true; + } + } + return false; } //鑾峰彇宸茬粡閰嶇疆濂界殑缃戠粶杩炴帴 -- Gitblit v1.8.0