Использование android.net.wifi.ScanResult для автоматического входа в сеть wifi, защищенную именем пользователя / паролем - PullRequest
2 голосов
/ 16 февраля 2012

Я новичок в мире разработчиков Android.Я работаю над несколькими книгами и примерами программ, чтобы понять.У меня есть вопросы по поводу приложения для Android, которое я хотел бы написать.

В моей школе есть открытая сеть Wi-Fi, защищенная страницей-привратником, которая требует от вас входа в систему с именем пользователя / паролем.После подключения устройства к маршрутизаторам любой http-запрос перенаправляется на страницу входа в систему на основе маршрутизатора.Я хочу автоматизировать это рукопожатие.

До сих пор я полагал, что буду полагаться на класс android.net.wifi.ScanResult.Я хочу, чтобы приложение проверяло, соответствует ли SSID школьной сети, и если это так, откройте страницу на какой-либо указанной пользователем домашней странице, где она будет перенаправлена ​​на страницу входа, введите информацию о пользователе, чтобы завершитьподключение, а затем тихо перестаньте работать.

Я хочу сделать это, потому что, особенно с мобильными устройствами, для которых настроено отключение соединения Wi-Fi на экране, поиск простых вещей во время занятий приводит в бешенство.Либо вы выключаете Wi-Fi и полагаетесь на соединение 3G, либо вам приходится вводить свой пользовательский / пассовый комбо каждый раз, когда вы хотите найти термин.

Мне нужна помощь в следующем: я незнаю, как часто сканирует Wi-Fi.Я не хочу писать приложение, которое постоянно контролирует соединение.Я хочу, чтобы он проверял Wi-Fi, к которому он подключен, когда пользователь разблокирует экран.Если это SSID для школ, я хочу, чтобы программа запускалась и подключалась, а затем выключалась.Как мне добиться этого простого входа в систему без непреднамеренного создания аккумулятора, который делает намного больше, чем нужно?

Заранее спасибо и извините за многословие.Я стану более кратким, когда лучше пойму, что делаю.

1 Ответ

1 голос
/ 18 ноября 2012

Подумав, как это сделать, вы, вероятно, захотите, чтобы служба запускала мониторинг состояния wifi:

http://developer.android.com/reference/android/net/wifi/package-summary.html является хорошей отправной точкой для обзора. http://developer.android.com/reference/android/net/wifi/WifiInfo.html & http://developer.android.com/reference/android/net/wifi/WifiManager.html#reconnect()

Это позволит вам проверить состояние. Если он не подключен, метод connect () позволяет вам подключиться. Использование http://www.openintents.org/en/node/320 для Bluetooth, но было бы неплохо для этого. Следующим является вопрос аутентификации, который, вероятно, лучше всего выполнить через веб-представление:

http://developer.android.com/reference/android/webkit/WebView.html

Это позволит вам удаленно управлять аутентификацией, вводя файл javascript для автоматического заполнения пользователя / пароля и отправки его. Смотрите ближе к концу снова для получения дополнительной информации.

Я бы также посоветовал сохранить гибкость, сохраняя пункт назначения в файле xml / sql. Для хранения пароля есть много способов его зашифровать Android SQlite шифрование пароля? & http://code.google.com/p/openintents/source/browse/#svn/trunk/Safe для получения дополнительной информации об этом.

http://www.openintents.org/en/node/36 имеет пример WebView. http://lexandera.com/2009/01/injecting-javascript-into-a-webview/ и ссылки на страницы с http://jsharkey.org/blog/2008/12/15/oilcan-greasemonkey-on-steroids-for-android/ должны помочь с javascript & webview.

...