Wifi报告为“已启用”,即使它不是

时间:2011-03-01 19:54:53

标签: android

我不确定这是否是Galaxy Tab特定问题,或者我没有使用WifiManager库的某些相关方法,但是我的应用程序正确地报告Wifi在启动时被禁用,但是一旦我启用它,它认为自己已启用,即使它仍处于连接过程中。

所以,我有一个线程,我在等待启用状态

//at THIS line it claims to be WIFI_STATE_DISABLED so I turn it on with...
wifiManager.setEnabled(true);
//and at this line it reports as 3 (which according to the doc is WIFI_STATE_ENABLED, even though it clearly isn't
while(wifiManager.getWifiState() == WifiManager.WIFI_STATE_DISABLED || wifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLING){

但它永远不会进入循环,它只是跳过,即使它没有启用

我希望还有其他一些我缺失的机制,或者我误解了“启用”的含义?

1 个答案:

答案 0 :(得分:1)

WifiManager.WIFI_STATE_ENABLED只告诉您,wifi设备已开启。它不会告诉您是否已建立与无线网络的连接。

看看android.net.ConnectivityManager.getActiveNetworkInfo()。此函数将返回NetworkState。使用NetworkState.getState()功能,您可以检查连接是否真的可用。