我想通过使用wifi在本地网络上发送数据。在发送数据之前,我检查wifi状态,如果未启用,请询问用户并打开wifi。 问题是,如果我打开wifi并尝试立即使用它,我有一个错误,导致无线网络需要一段时间才能打开。Android - 如何以编程方式打开wifi并等到它未启用
所以,我认为,我需要打开wifi并设置当wifi进入启用状态时将被调用的处理程序。但WifiManager不提供这样的处理方法。我怎样才能赶上改变WiFi状态?
UPD
如何打开WiFi:
WifiManager wifi = WifiUtils.getWifi(getApplicationContext());
if (WifiUtils.isWifiEnabled(wifi)) return true;
wifi.setWifiEnabled(true);
//---
public static WifiManager getWifi(Context ctx)
{
return (WifiManager)ctx.getSystemService(ctx.WIFI_SERVICE);
}
public static boolean isWifiEnabled(WifiManager wifi)
{
if (wifi==null) return false;
if (wifi.getWifiState()!=wifi.WIFI_STATE_ENABLED) return false;
return true;
}
我认为与某人的连接本身并不是一个好方法,也是因为我只需要访问本地网络。主要问题是,我打开后不知道如何处理wifi状态更改 – 2014-09-04 21:44:50
与您有关的httpconnection同意。然而,为了处理wifi状态的变化,你是否参考了[无线或3G网络状态改变时的BroadcastReceiver](http://stackoverflow.com/questions/10733121/broadcastreceiver-when-wifi-or-3g-network-state-changed)? – 2014-09-04 21:50:24
我发现你的解决方案在于我提供的那个链接的问题.OP已经发布了他的完整工作代码。你可以参考并解决你的问题。 – 2014-09-04 22:10:59