如何等待WifiManager连接,并确定是否正常/失败?

时间:2014-02-12 15:21:07

标签: android broadcastreceiver android-wifi wifimanager

我正在构建一个可以使用WifiManager自动添加/连接我们的WiFi托管硬件的应用程序,以便用户可以轻松访问其网络界面。

wifiManager.enableNetwork(i.networkId, true);部分有效。它立即返回,并在几秒钟内连接wifi。但是,Web界面活动立即启动,WebView快速超时:无法加载页面。

这是因为WiFi连接需要几秒钟。我也无法通知用户连接尝试失败。

我读到了这一点,在我看来,BroadcastReceiver可以“戳”我的wifi连接活动来启动webinterface活动。奖励还在于可视化失败的连接。

所以,我的问题:

  • 我需要BroadcastReceiver WifiManager.SUPPLICANT_STATE_CHANGED_ACTIONWifiManager.NETWORK_STATE_CHANGED_ACTION
  • 我需要{{1}}
  • 何时注册并取消注册?
  • 可以/可能我只是设置一个循环来检查两者之间的状态机(和超时),或者这是不好的设计,为什么?

我希望这可以在我的应用实例内部完成..或者当wifi尝试连接时退出应用时会不会导致错误?

修改

至于代码;我完全像这样使用WifiManager:How do I connect to a specific Wi-Fi network in Android programmatically?

定位Android 4.1.2,并在活动中使用片段来回收视图/状态实例。

1 个答案:

答案 0 :(得分:0)

您应该收听WifiManager.NETWORK_STATE_CHANGED_ACTION并检查您所连接的Intent中包含的NetworkInfo对象。

什么时候注册:如果没有查看代码就很难说,但是你可以在调用wifiManager.enableNetwork之前注册