我正在构建一个可以使用WifiManager自动添加/连接我们的WiFi托管硬件的应用程序,以便用户可以轻松访问其网络界面。
wifiManager.enableNetwork(i.networkId, true);
部分有效。它立即返回,并在几秒钟内连接wifi。但是,Web界面活动立即启动,WebView快速超时:无法加载页面。
这是因为WiFi连接需要几秒钟。我也无法通知用户连接尝试失败。
我读到了这一点,在我看来,BroadcastReceiver
可以“戳”我的wifi连接活动来启动webinterface活动。奖励还在于可视化失败的连接。
所以,我的问题:
BroadcastReceiver
WifiManager.SUPPLICANT_STATE_CHANGED_ACTION
或WifiManager.NETWORK_STATE_CHANGED_ACTION
我希望这可以在我的应用实例内部完成..或者当wifi尝试连接时退出应用时会不会导致错误?
修改
至于代码;我完全像这样使用WifiManager:How do I connect to a specific Wi-Fi network in Android programmatically?
定位Android 4.1.2,并在活动中使用片段来回收视图/状态实例。
答案 0 :(得分:0)
您应该收听WifiManager.NETWORK_STATE_CHANGED_ACTION
并检查您所连接的Intent中包含的NetworkInfo
对象。
什么时候注册:如果没有查看代码就很难说,但是你可以在调用wifiManager.enableNetwork
之前注册