2012-02-15 96 views
2

我是android開發人員的全新新人。我正在通過幾本書和一些示例程序來完成我的工作。我有一個關於我想寫的Android應用程序的問題。使用android.net.wifi.ScanResult自動登錄到用戶名/密碼保護的wifi網絡

我的學校有一個開放的無線網絡,由網守頁面保護,要求您使用用戶名/密碼登錄。一旦設備連接到路由器,任何http請求都會重定向到基於路由器的登錄頁面。我想讓這個握手自動化。

我到目前爲止想通了,我會依靠android.net.wifi.ScanResult類。我希望應用程序檢查SSID是否與學校的網絡匹配,如果是,請打開一個頁面到某個用戶指定的主頁,在那裏它將被重定向到登錄頁面,輸入用戶信息以完成連接,然後悄然停止工作。

我想這樣做是因爲,尤其是在移動設備設置爲讓他們的wifi連接在屏幕上睡眠關閉時,在課堂上查找簡單的東西令人不快。無論您關閉無線網絡,並依靠3G連接,或者每次想要查找某個術語時都必須輸入用戶/密碼組合。

我需要幫助的是這樣的:我不知道wifi掃描的頻率。我不想編寫一個應用程序來監視連接。我希望它在用戶解鎖屏幕時檢查它連接的WiFi。如果是學校SSID,我希望程序運行並連接,然後關閉。我如何實現這個簡單的登錄,而不會無意中創建一個超出需要的電池電量?

在此先感謝並對冗長抱歉。當我更好地理解我在做什麼時,我會變得更加簡潔。

回答

1

通過它會怎麼做,你可能會想一個服務運行監控無線網絡的狀態的思考:

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()

這會讓你檢查狀態。如果沒有連接,重新連接()讓你連接。使用http://www.openintents.org/en/node/320進行藍牙傳輸,但是可以推薦使用。接下來是認證的問題,那可能是最好通過網絡視圖進行:

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

這將讓你遠程控制認證,注入一個javascript文件自動填寫用戶名/密碼並提交它。有關更多信息,請再次查看附近的結尾。

我還建議保持它靈活存儲您的目的地在xml/sql文件。爲了存儲密碼,有很多方法可以將它加密Android SQlite password encryption? & 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/應該幫助更多的web瀏覽器的javascript &。