Для создания WiFi точки доступа на Android устройстве, которая будет сохранять пароли, необходимо использовать API уровня 26 (Android 8.0 Oreo) и выше, так как начиная с этой версии была введена возможность создания точек доступа с поддержкой WPA3 и сохранением настроек.
Для создания такой точки доступа необходимо выполнить следующие шаги:
1. Создать класс, расширяющий WifiManager.LocalOnlyHotspotCallback
для обработки событий хотспота.
private class MyHotspotCallback extends WifiManager.LocalOnlyHotspotCallback { @Override public void onStarted(LocalOnlyHotspotReservation reservation) { super.onStarted(reservation); // Ваш код обработки успешного запуска точки доступа } @Override public void onStopped() { super.onStopped(); // Ваш код обработки остановки точки доступа } @Override public void onFailed(int reason) { super.onFailed(reason); // Ваш код обработки ошибки точки доступа } }
2. Получить экземпляр WifiManager
и запросить создание локальной точки доступа.
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); if (wifiManager != null) { MyHotspotCallback myHotspotCallback = new MyHotspotCallback(); wifiManager.startLocalOnlyHotspot(myHotspotCallback, new Handler()); }
3. В методе onStarted()
у объекта LocalOnlyHotspotReservation
можно получить информацию о созданной точке доступа, включая SSID и пароль.
@Override public void onStarted(LocalOnlyHotspotReservation reservation) { super.onStarted(reservation); WifiConfiguration config = reservation.getWifiConfiguration(); if (config != null) { Log.d("Hotspot", "SSID: " + config.SSID); Log.d("Hotspot", "Password: " + config.preSharedKey); } }
Этот код создаст локальную WiFi точку доступа на устройстве Android, включая сохранение пароля. Помните, что функционал создания точек доступа может быть ограничен некоторыми производителями устройств и прошивками. Пожалуйста, учитывайте это при разработке приложения.