|
@@ -9,10 +9,8 @@ import android.net.*
|
|
|
import android.net.NetworkInfo.DetailedState
|
|
|
import android.net.wifi.*
|
|
|
import android.os.Parcelable
|
|
|
+import android.util.Log
|
|
|
import com.develop.base.ext.appGlobalScope
|
|
|
-import com.develop.base.ext.toJson
|
|
|
-import com.develop.base.manager.ConnectWifiUtils.WifiConnectCallback
|
|
|
-import com.develop.base.scop.safeGlobalScope
|
|
|
import com.develop.base.util.TimeDownUtil
|
|
|
import kotlinx.coroutines.*
|
|
|
|
|
@@ -190,7 +188,6 @@ class WifiHelp {
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 断开当前连接的网络
|
|
|
*/
|
|
@@ -314,7 +311,7 @@ class WifiHelp {
|
|
|
formatLevel(scanResult.level),
|
|
|
scanResult.BSSID,
|
|
|
"",
|
|
|
- securityType(scanResult.capabilities), configuration != null
|
|
|
+ securityType(scanResult.capabilities), configuration != null, isConnected = isConnected(scanResult.SSID)
|
|
|
)
|
|
|
wifiList.add(wifiData)
|
|
|
}
|
|
@@ -333,6 +330,19 @@ class WifiHelp {
|
|
|
return wifiList
|
|
|
}
|
|
|
|
|
|
+ open fun isConnected(ssid: String): Boolean {
|
|
|
+
|
|
|
+ val wifiInfo = mWifiManager.connectionInfo ?: return false
|
|
|
+ return when (wifiInfo.supplicantState) {
|
|
|
+ SupplicantState.AUTHENTICATING, SupplicantState.ASSOCIATING, SupplicantState.ASSOCIATED, SupplicantState.FOUR_WAY_HANDSHAKE, SupplicantState.GROUP_HANDSHAKE, SupplicantState.COMPLETED -> wifiInfo.ssid.replace(
|
|
|
+ "\"",
|
|
|
+ ""
|
|
|
+ ) == ssid
|
|
|
+
|
|
|
+ else -> false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取当前连接的WiFi网络
|
|
|
*/
|
|
@@ -360,11 +370,23 @@ class WifiHelp {
|
|
|
appGlobalScope.launch(Dispatchers.IO) {
|
|
|
val list = getScanDevice()
|
|
|
val connectionWifi = getConnectionWifi()
|
|
|
+
|
|
|
+ val wifiList = mWifiManager.scanResults
|
|
|
+ wifiList.forEach {
|
|
|
+ Log.e("TAG wifi", it.toString())
|
|
|
+ }
|
|
|
+
|
|
|
+ list.forEach {
|
|
|
+ Log.e("TAG wifi list", it.toString())
|
|
|
+ }
|
|
|
+
|
|
|
withContext(Dispatchers.Main) {
|
|
|
timeDownUtil?.cancel()
|
|
|
mBuild?.mScanCallback?.invoke(list)
|
|
|
mBuild?.mAlreadyConnectionCallback?.invoke(connectionWifi)
|
|
|
|
|
|
+
|
|
|
+
|
|
|
//重连机制
|
|
|
var isWifiConnected = false
|
|
|
list.forEach {
|
|
@@ -375,7 +397,7 @@ class WifiHelp {
|
|
|
|
|
|
|
|
|
var reconnectWifi =
|
|
|
- if (!isWifiConnected) list.filter { filter -> !filter.isConnected && filter.isSavePwd } else null
|
|
|
+ if (!isWifiConnected) list.filter { filter -> filter.isConnected && filter.isSavePwd } else null
|
|
|
|
|
|
if (reconnectWifi!!.isNotEmpty()) {
|
|
|
initWork()
|
|
@@ -570,7 +592,7 @@ class WifiHelp {
|
|
|
* 当第一次连接的时候,会导致密码正确,但isSavaPwd 返回false,固加多个password 不为空的情况下,也不清除
|
|
|
* */
|
|
|
currWifiData?.apply {
|
|
|
- if (this.isSavePwd||this.password.isNotEmpty()) {
|
|
|
+ if (this.isSavePwd || this.password.isNotEmpty()) {
|
|
|
} else {
|
|
|
removeSaveWifi(this)
|
|
|
}
|
|
@@ -626,6 +648,7 @@ class WifiHelp {
|
|
|
getActiveNetworkInfo()?.detailedState
|
|
|
} else null
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* 获取当前网络信息
|
|
|
*/
|