From 3179371d3cb7e067937ae073c74a57bead023ba0 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期一, 25 八月 2025 10:26:54 +0800
Subject: [PATCH] 2025年08月25日10:26:52
---
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