Страницы

Поиск по вопросам

вторник, 10 декабря 2019 г.

Как написать android программу для управления люстрой через Webview?

#android #java #webview


Добры вечер.
Я пытаюсь написать android программу для управления люстрой через Webview. Собрал
вот эту схему http://habrahabr.ru/post/159745/ (если кому интересно могу дать полезные
советы по сборке этого девайса) роутер настроил, wifi сеть назвал ON-OFF адрес роутера
192.168.1.1 и из видео урока https://www.youtube.com/watch?v=SrROaEpcIp4 сделал простои
браузер. Всё работает, но есть некоторые пожелания.
Я хочу сделать так чтоб при включении приложения он подключался именно к wifi сети
ON-OFF и потом открывал адрес роутера 192.168.1.1. Если он не в зоне действия или не
возможно открыть адрес роутера 192.168.1.1 выводил соответственное сообщения.
Пожалуйста если можно объясните подробно как это сделать.
С уважением Том    


Ответы

Ответ 1



Попробуйте это. Проверил на WiFi WPA2-PSK WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiConfiguration wifiConf = new WifiConfiguration(); wifiConf.SSID = "\"ON-OFF\""; wifiConf.wepKeys[0] = "\"(пароль)\""; wifiConf.wepTxKeyIndex = 0; wifiConf.preSharedKey = "\"(пароль)\""; wifiConf.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); wifiConf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP); wifiConf.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); wifiConf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); wifiConf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); wifiConf.status = WifiConfiguration.Status.ENABLED; wifiConf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); wifiConf.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); wifiConf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); wifiConf.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); wifiConf.allowedProtocols.set(WifiConfiguration.Protocol.RSN); wifiConf.allowedProtocols.set(WifiConfiguration.Protocol.WPA); wifi.addNetwork(wifiConf); wifi.saveConfiguration(); List list = wifi.getConfiguredNetworks(); for( WifiConfiguration i : list ) { Log.e("SSID", i.SSID); if(i.SSID != null && i.SSID.equals("\"" + "ON-OFF" + "\"")) { Log.e("RSSI_VALUE", "NET_ID " + String.valueOf(i.networkId)); wifi.setWifiEnabled(true); boolean enable = wifi.enableNetwork(i.networkId, true); Log.e("RSSI_VALUE", "ENABLE_WIFI " + String.valueOf(enable)); break; } } В Manifest добавить Для подключение требуется время, поэтому прежде чем загружать страницу стоит удостовериться что подключение завершено.

Ответ 2



Эх, опоздал немного. Написал приложение, выполняющую поставленную задачу. Обязательно измените данные в классе Constants, я использовал свои для теста. А всё остальное подгоните сами по надобности. Исходники (APK находится в папке /bin)

Комментариев нет:

Отправить комментарий