|
@@ -107,8 +107,7 @@ public class WiFiActivity extends BaseActivity {
|
|
|
int operation = data.getIntExtra("operation", -1);
|
|
|
WifiModel wifiModel = null;
|
|
|
for (WifiModel model : mDataList) {
|
|
|
- if (model.title.equals(data.getStringExtra("ssid")) &&
|
|
|
- model.BSSID.equals(data.getStringExtra("bssid"))) {
|
|
|
+ if (model.title.equals(data.getStringExtra("ssid"))) {
|
|
|
wifiModel = model;
|
|
|
break;
|
|
|
}
|
|
@@ -121,10 +120,10 @@ public class WiFiActivity extends BaseActivity {
|
|
|
} else if (operation == OPERATE_CONNECT) {
|
|
|
wifiModel.status = WifiModel.STATUS.CONNECTING;
|
|
|
@SuppressLint("MissingPermission")
|
|
|
- List<WifiConfiguration> savedList = wifiManager.getConfiguredNetworks();
|
|
|
- for (WifiConfiguration ap : savedList) {
|
|
|
+ List<WifiConfiguration> list = wifiManager.getConfiguredNetworks();
|
|
|
+ for (WifiConfiguration ap : list) {
|
|
|
String ssid = ap.SSID;
|
|
|
- if (ssid.substring(1, ssid.length() - 1).equals(wifiModel.title) && ap.BSSID.equals(wifiModel.BSSID)) {
|
|
|
+ if (ssid.substring(1, ssid.length() - 1).equals(wifiModel.title)) {
|
|
|
connect(ap, true);
|
|
|
break;
|
|
|
}
|
|
@@ -215,10 +214,11 @@ public class WiFiActivity extends BaseActivity {
|
|
|
WifiConfiguration wifiConfiguration = savedAp.get(i);
|
|
|
String bssid = wifiConfiguration.BSSID;
|
|
|
String ssid = wifiConfiguration.SSID;
|
|
|
- if (bssid == null || (connected != null && bssid.equals(connected.getBSSID()))) {
|
|
|
+ if (ssid.trim().isEmpty() || ssid.contains("<unknown ssid>")) {
|
|
|
continue;
|
|
|
}
|
|
|
- if (ssid.trim().isEmpty() || ssid.contains("<unknown ssid>")) {
|
|
|
+
|
|
|
+ if (connected != null && ssid.equals(connected.getSSID())) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
@@ -235,18 +235,15 @@ public class WiFiActivity extends BaseActivity {
|
|
|
}
|
|
|
savedModel.BSSID = bssid;
|
|
|
mDataList.add(savedModel);
|
|
|
- savedList.add(bssid);
|
|
|
+ savedList.add(ssid);
|
|
|
}
|
|
|
|
|
|
if (list != null && !list.isEmpty()) {
|
|
|
for (ScanResult result : list) {
|
|
|
- if (result.BSSID == null) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (connected != null && connected.getBSSID() != null && connected.getBSSID().equals(result.BSSID)) {
|
|
|
+ if (connected != null && connected.getSSID() != null && connected.getSSID().equals(result.SSID)) {
|
|
|
continue;
|
|
|
}
|
|
|
- if (!savedList.isEmpty() && savedList.contains(result.BSSID)) {
|
|
|
+ if (!savedList.isEmpty() && savedList.contains(result.SSID)) {
|
|
|
continue;
|
|
|
}
|
|
|
if (!is24GHzWifi(result.frequency)) {
|
|
@@ -264,7 +261,7 @@ public class WiFiActivity extends BaseActivity {
|
|
|
wifiModel.status = WifiModel.STATUS.NA;
|
|
|
wifiModel.BSSID = result.BSSID;
|
|
|
String capabilities = result.capabilities.trim();
|
|
|
- if (connected != null && connected.getBSSID().equals(result.BSSID)) {
|
|
|
+ if (connected != null && connected.getSSID().equals(result.SSID)) {
|
|
|
wifiModel.status = WifiModel.STATUS.CONNECTED;
|
|
|
} else if (capabilities.isEmpty() || capabilities.equals("[ESS]")) {
|
|
|
wifiModel.status = WifiModel.STATUS.OPEN;
|
|
@@ -405,7 +402,7 @@ public class WiFiActivity extends BaseActivity {
|
|
|
private void disConnect(WifiModel model) {
|
|
|
for (WifiConfiguration configuration : wifiManager.getConfiguredNetworks()) {
|
|
|
String ssid = configuration.SSID;
|
|
|
- if (model.title.equals(ssid.substring(1, ssid.length() - 1)) && model.BSSID.equals(configuration.BSSID)) {
|
|
|
+ if (model.title.equals(ssid.substring(1, ssid.length() - 1))) {
|
|
|
// wifiManager.enableNetwork(configuration.networkId, false);
|
|
|
boolean isDisable = wifiManager.disableNetwork (configuration.networkId);
|
|
|
if(isDisable)
|
|
@@ -460,10 +457,12 @@ public class WiFiActivity extends BaseActivity {
|
|
|
|
|
|
@SuppressLint("MissingPermission")
|
|
|
private void forget(WifiModel model) {
|
|
|
+ Log.d(TAG, "forget: " + model.title);
|
|
|
for (WifiConfiguration configuration : wifiManager.getConfiguredNetworks()) {
|
|
|
String ssid = configuration.SSID;
|
|
|
- if (model.title.equals(ssid.substring(1, ssid.length() - 1)) && model.BSSID.equals(configuration.BSSID)) {
|
|
|
- wifiManager.removeNetwork(configuration.networkId);
|
|
|
+ if (model.title.equals(ssid.substring(1, ssid.length() - 1))) {
|
|
|
+ boolean isOk = wifiManager.removeNetwork(configuration.networkId);
|
|
|
+ Log.d(TAG, "forget result:" + isOk);
|
|
|
removeNetWorkId(configuration.networkId);
|
|
|
break;
|
|
|
}
|