2

我是 android 开发者世界的新手。我正在阅读几本书和一些示例程序来了解我的方向。我有关于我想写的 android 应用程序的问题。

我的学校有一个开放的 wifi 网络,由网守页面保护,该页面要求您使用用户名/密码登录。一旦设备连接到路由器,任何 http 请求都会重定向到基于路由器的登录页面。我想自动化这个握手。

到目前为止,我认为我将依赖 android.net.wifi.ScanResult 类。我希望应用程序检查 SSID 是否与学校的网络匹配,如果是,打开一个页面到某个用户指定的主页,该主页将被重定向到登录页面,输入用户信息以完成连接,然后安静地停止工作。

我想这样做是因为,特别是在移动设备设置为在屏幕上关闭 wifi 连接时,在课堂上查找简单的东西会让人很生气。要么关闭 wifi 并依赖 3G 连接,要么每次要查找术语时都必须输入用户/密码组合。

我需要帮助的是:我不知道 wifi 扫描的频率。我不想编写一个始终监视连接的应用程序。我希望它在用户解锁屏幕时检查它连接的 wifi。如果是学校 SSID,我希望程序运行并连接,然后关闭。我如何实现这个简单的登录,而不会无意中创建一个比它需要做的更多的电池?

提前感谢您的冗长。当我更好地理解我在做什么时,我会变得更简洁。

4

1 回答 1

1

仔细考虑它是如何完成的,您可能希望运行一个服务来监控 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()

这将使您检查状态。如果它没有连接,reconnect() 让你连接。使用http://www.openintents.org/en/node/320进行蓝牙,但这将是一个很好的地方。接下来是身份验证问题,这可能最好通过 Web 视图完成:

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 有更多帮助。

于 2012-11-17T22:08:32.970 回答