我正在尝试制作一个应用程序,但我遇到了一些我现在无法解决的问题:
我的应用程序必须连接到具有指定名称的特定 AP 并显示 IP 网关。我想要做的是,当应用程序启动时,它会检查 WiFi 模块是否已启用。如果不是,则启用它并连接到 AP。如果已启用,请检查它是否已连接到正确的 AP,如果没有,请连接到那里。
所以,现在我做了:
启用 wifi 部分。这是一个通过名为 enableWifi() 的 AlertDialog 调用的函数(如何从应用程序启用/禁用 WiFi?)
设置 WiFi 网络信息并在那里连接。它也是一个通过名为 setupWiFi() 的 AlertDialog 调用的函数(如何以及如何设置 Android WifiConfiguration.preSharedKey 以连接到 WPA2 PSK WiFi 网络)
获取 IP 网关。这是一个名为 setIP() 的函数。这会在 EditText 视图中写入 de IP。(以编程方式获取网关和子网掩码详细信息)
AP有两种连接方式:
1) 启用 Wifi -> 连接到 AP
2) 连接到 AP
那么问题来了:当我启用WiFi模块时,我应该等待启用完成才能开始连接AP,然后等待连接完成才能检索网关IP。我不知道如何做那些“等待”部分。如果我在 2) 中,我的应用程序现在要做的是连接到 AP 并获取当前网络的网关,这仍然是旧的,也是我们不想要的。
我尝试了诸如 AsyncTask 和 Thread 之类的线程,但无法使其工作...
感谢阅读,我希望这很容易解决!
亲切的问候,劳尔·苏亚雷斯