#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(); Listlist = 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)
Комментариев нет:
Отправить комментарий