, поэтому я тратил истинную информацию о всех потоках здесь и в любом другом месте, где google возьмет меня. Но все же у меня возникают проблемы с подключением к сетям WPA PSK. Вот мой код, у меня есть 2 поля edittext, из которых я прочитал SSID и PSK, а затем один флажок, чтобы выбрать, скрыт ли SSID или нет.Android, использующий 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 из настроек, я получаю соединение, как должен.
Что касается размещения SSID и WPA PSK, я пробовал использовать оба типа "\" ". Concat (networkSSID) .concat (" \ ""); и "\" "+ networkSSID +" \ ""; с тем же результатом.
Любые советы будут очень желанными. С уважением Lasse
Так я думал, что попробовал все предложенные здесь на переполнение стека , Но эта тема на самом деле помогла мне в конце http://stackoverflow.com/questions/8392747/setup-wifi-programatically-using-wpa-security-in-android-tablet Так большое спасибо RYAN за предоставление советов при чтении одного AP, а затем обмануть его. В моем случае оказалось, что мне нужно, чтобы добавить Даже если я устанавливаю для WPA я все еще нужно добавить allowedGroupCiphers WEP40 и WEP104 И у меня была только wc.allowedProtocols.set (WifiConfiguration.Protocol.RSN) ; Итак, я также добавил wc.allowedProtocols.set (WifiConfiguration.Protocol.WPA); – Lasse