WPS соединение программно в Android?
Как я могу попробовать подключиться к Wi-Fi с протоколом WPS программно? Я нашел, как соединиться с WEP, WPA и открытым Wi-Fi, но не WPS...
Спасибо всем!
РЕДАКТИРОВАТЬ ПОСЛЕ ОТВЕТА Greg432
Я пробовал этот код, но он не работает, решение?
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
wpsInfo = new WpsInfo();
wpsInfo.BSSID = wifiList.get(0).BSSID;
wpsInfo.pin = "11883737";
wpsInfo.setup = 0;
wpsCallback = new WifiManager.WpsCallback() {
@Override
public void onStarted(String pin) {
Toast.makeText(getApplicationContext(), "Started wps connection.", Toast.LENGTH_SHORT).show();
}
@Override
public void onSucceeded() {
Toast.makeText(getApplicationContext(), "Connected!", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailed(int reason) {
String errorMessage;
switch (reason) {
case WifiManager.WPS_OVERLAP_ERROR:
errorMessage = "WPS_OVERLAP_ERROR";
break;
case WifiManager.WPS_WEP_PROHIBITED:
errorMessage = "WPS_WEP_PROHIBITED";
break;
case WifiManager.WPS_TKIP_ONLY_PROHIBITED:
errorMessage = "WPS_WEP_PROHIBITED";
break;
/*case WifiManager.IN_PROGRESS:
mWifiManager.cancelWps(null);
startWps();
return;*/
case WifiManager.WPS_TIMED_OUT:
errorMessage = "WPS_TIMED_OUT";
//startWps();
return;
default:
errorMessage = "Generic error.";
break;
}
Toast.makeText(getApplicationContext(), errorMessage, Toast.LENGTH_SHORT).show();
}
};
wifiManager.startWps(wpsInfo, wpsCallback);
}
2 ответа
Используйте метод WifiManager startWps():
mWifiManager.startWps(wpsConfig, mWpsCallback);
Вы должны передать конфигурацию и обратный вызов.
пример
Обновление 2021
Программное соединение с WPS устарело и удалено с API 28 и выше.
Больше невозможно подключиться к
mWifiManager.startWps(wpsConfig, mWpsCallback);
И альтернативы тоже нет.