알 수없는 SSID 목록을 스캔하고 사전 정의 된 몇 가지 암호로 해당 액세스 지점에 로그인해야한다는 요구 사항이 있습니다. 성공하면 다음 작업을 계속하십시오. 실패하면 다음 SSID에 로그인하십시오.안드로이드 - SSID를 알아내는 방법이 비밀번호로 실패 했습니까?
내가 등록하려고 내가하는 일을하고있다 참조하기 위해 할 수있는 한 많은 :
WifiConfiguration wifiConfig = new WifiConfiguration();
wifiConfig.SSID = String.format("\"%s\"", ssid);
wifiConfig.preSharedKey = String.format("\"%s\"", password);
netId = mainWifi.addNetwork(wifiConfig);
if (netId != -1) {
if (mainWifi.disconnect())
if (mainWifi.enableNetwork(netId, true))
if (mainWifi.reconnect()) {
}
}
그리고 연결에 흐름 않은 :
receiverWifi = new WifiReceiver();
registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
registerReceiver(receiverWifi, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
registerReceiver(receiverWifi, new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION));
registerReceiver(receiverWifi, new IntentFilter(WifiManager.NETWORK_IDS_CHANGED_ACTION));
registerReceiver(receiverWifi, new IntentFilter(WifiManager.ACTION_PICK_WIFI_NETWORK));
registerReceiver(receiverWifi, new IntentFilter(WifiManager.ACTION_REQUEST_SCAN_ALWAYS_AVAILABLE));
registerReceiver(receiverWifi, new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION));
registerReceiver(receiverWifi, new IntentFilter(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION));
내가 같은 암호를 사용하여 SSID를 연결
을class WifiReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
} else if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.getType() == ConnectivityManager.TYPE_WIFI &&
networkInfo.isConnected()) {
WifiInfo wifiInfo = mainWifi.getConnectionInfo();
ssid = wifiInfo.getSSID();
//able to know Wifi connected to ssid here
}
} else if (intent.getAction().equalsIgnoreCase(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
}
}
}
하지만 암호가이 SSID로 실패했는지 어떻게 알 수 있습니까? 비밀 번호가 실패했는지 알고 싶으면 코드가 다음 SSID를 시도합니다. 하지만 암호 시도가 실패했음을 알리기 위해 어떤 조치를 취해야합니까? 현재 나는 android.net.wifi.STATE_CHANGE
동작 만 계속 수신하지만 암호가 실패하지 않았다는 것을 의미하지는 않습니다.
감사합니다,하지만 난 WifiManager'났습니다. ERROR_AUTHENTICATING'이 항상 효과가있는 것은 아닙니다. –
나를 위해 일하지 않습니다. – AJit