WifiManager를 사용하여 특정 SSID의 존재 여부를 테스트하고 주어진 WPA 암호를 확인했지만 이상한 결과가 나타납니다.Android WifiManager에서 팬텀 연결을하고 있습니까?
코드는 다음과 같습니다
WifiConfiguration wc = new WifiConfiguration();
// init ssid and password as Strings ...
wc.SSID = "\"" + ssid + "\"";
wc2.preSharedKey = "\"" + password + "\"";
wc.hiddenSSID = true;
wc.status = WifiConfiguration.Status.ENABLED;
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP);
wc.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP);
wc.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP);
wc.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP);
wc.allowedProtocols.set(WifiConfiguration.Protocol.RSN);
int res = wifi.addNetwork(wc);
boolean b = wifi.enableNetwork(res, true);
이상한 부분은 enableNetwork()가 SSID를 가진 무선 랜 네트워크가 온라인 상태가 아닌 경우에도 true를 반환한다는 것입니다 (?!). 그러나 대상 Wifi 네트워크가 있고 암호가 맞으면 코드가 성공적으로 연결합니다.
Android 설명서에 따르면 enableNetwork()는 "작업이 성공하면 true를 반환합니다." 내 질문은 다음과 같습니다.
1) 네트워크가 활성화되지 않은 경우 어떻게 활성화 할 수 있습니까?
2) WifiConfiguration 매개 변수 인 wc를 잘못 초기화 했습니까?
3) Wi-Fi 네트워크 연결을 테스트하는 올바른 방법입니까?