그래서 여기에 트롤링 된 모든 스레드와 Google이 나를 데려 갈 곳을 트롤합니다. 하지만 여전히 WPA PSK 네트워크에 연결하는 데 문제가 있습니다. 여기에 내 코드가 있는데 SSID와 PSK를 읽은 두 개의 edittext 필드와 SSID가 숨겨져 있는지 여부를 선택하는 확인란이 하나씩 있습니다.안드로이드는 wifimanager를 사용하여 WPA-PSK 보안 네트워크에 연결합니다.
EditText mSSID = (EditText) findViewById(R.id.wifiTVssidcurrent);
String networkSSID = mSSID.getText().toString();
EditText mWPA = (EditText) findViewById(R.id.wifiTVwpacurrent);
String networkWPA = mWPA.getText().toString();
// Update text to show that connection is pending
TextView wifiStatus = (TextView) findViewById(R.id.wifiTVconnectionstatus);
wifiStatus.setText("Connecting to " + networkSSID);
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wc = new WifiConfiguration();
wc.SSID = "\"".concat(networkSSID).concat("\"");
wc.preSharedKey = "\"".concat(networkWPA).concat("\"");
CheckBox mSSIDHidden = (CheckBox) findViewById(R.id.wifiCBhiddenssid);
wc.hiddenSSID = false;
if (mSSIDHidden.isChecked()) {
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);
Log.d("WifiPreference", "add Network returned " + res);
boolean b = wifi.enableNetwork(res, true);
Log.d("WifiPreference", "enableNetwork returned " + b);
boolean c = wifi.reconnect();
Log.d("WifiPreference", "reconnect returned " + c);
실행 후 전화에서 볼 수있는 것은 AP에서 설정이 만들어졌지만 연결되지 않았기 때문입니다. 그리고 내가 만든 AP를 설정에서 수동으로 사용하려고하면 나중에 연결할 수 없습니다. 하지만 설정 내에서 AP를 만들면 꼭 연결해야합니다.
SSID 및 WPA PSK를 넣으려면 "\" "concat (networkSSID) .concat ("\ ""); 및 "\" "+ networkSSID +"\ ""; 같은 결과.
모든 팁을 매우 환영합니다. 감사합니다. Lasse
그래서 나는 모든 스택 오버플로 여기에 제안하려고했다고 생각했다 . 하지만이 스레드는 실제로 결국 나를 도왔습니다 0120-13-팁을 제공 한 RYAN에게 큰 감사를 전합니다. 하나의 AP를 읽고 그것에 섞어 라. 내 경우 은 내가 나는 여전히 allowedGroupCiphers WEP40를 추가 할 필요 WPA를위한 설정하고 있지만 과 WEP104 를 추가 할 필요가 있다고 밝혀졌다 그리고 나는 단지 wc.allowedProtocols.set (WifiConfiguration.Protocol.RSN을)했다 ; 그래서 나는 또한 을 추가했다. wc.allowedProtocols.set (WifiConfiguration.Protocol.WPA); – Lasse