| | |
| | | |
| | | |
| | | import android.Manifest; |
| | | import android.app.Application; |
| | | import android.content.Context; |
| | | import android.content.pm.PackageManager; |
| | | import android.net.wifi.ScanResult; |
| | |
| | | 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; |
| | |
| | | |
| | | 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); |
| | | } |
| | | |
| | |
| | | * |
| | | * @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; |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | //获取扫描结果 |
| | | 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; |
| | | } |
| | | |
| | | //获取已经配置好的网络连接 |