wjc
2025-05-07 5d3efa4c93dde0cde474951e5310bb72ebbf4184
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("\"", "");
    }
    /**
     * 获取当前连接的wifi
     *
     * @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表示存在,false表示不存在
     */
    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;
    }
    //获取已经配置好的网络连接