【发布时间】:2013-04-30 10:26:57
【问题描述】:
我正在尝试制作一个应用程序,但我遇到了一些暂时无法解决的问题:
我的应用程序必须连接到具有指定名称的特定 AP 并显示 IP 网关。我想要做的是,当应用程序启动时,它会检查 WiFi 模块是否已启用。如果不是,则启用它并连接到 AP。如果已启用,请检查它是否已连接到正确的 AP,如果没有,请连接到那里。
所以,现在我做到了:
启用 wifi 部分。这是一个通过名为 enableWifi() (How to enable/disable WiFi from an application?) 的 AlertDialog 调用的函数
设置 WiFi 网络信息并在那里连接。它也是一个通过名为 setupWiFi() (How and what to set to Android WifiConfiguration.preSharedKey to connect to the WPA2 PSK WiFi network) 的 AlertDialog 调用的函数
获取 IP 网关。这是一个名为 setIP() 的函数。这会在 EditText 视图中写入 de IP。 (Programmatically getting the gateway and subnet mask details)
接入AP有两种方式:
1) 启用 Wifi -> 连接到 AP
2) 连接到 AP
所以问题来了:当我启用WiFi模块时,我应该等待完成启用才能开始连接AP,然后等待完成连接才能检索网关IP。我不知道如何做那些“等待”部分。如果我在 2) 中,我的应用现在要做的是连接到 AP 并获取当前网络的网关,这仍然是旧的,也是我们不想要的。
我尝试了 AsyncTask 和 Thread 之类的线程,但无法使其工作......
感谢阅读,我希望这很容易解决!
亲切的问候, 劳尔·苏亚雷斯
【问题讨论】: