请教如何判断wifi是否连接上网络了
wifi打开,连接到网络获得了IP才算连接上,有办法在activity启动的时候判断吗?
另外有没有办法监听断开了wifi网络连接和连接上了wifi网络连接?
[解决办法]
判断WIFI是否连接:
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(wifi == State.CONNECTED){
//WIFI已连接
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
System.out.println(intent.getAction());
if(intent.getAction().equals(WifiManager.RSSI_CHANGED_ACTION))
{
//信号强度改变
int strength=getStrength(context);
System.out.println("当前信号 "+strength);
}else if(intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){
System.out.println("网络状态改变");
NetworkInfo info=intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if(info.getState().equals(NetworkInfo.State.DISCONNECTED))
{
//WIFI网络断开
} else if(...){
//其他状态
}
}else if(intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION))
{
//WIFI开关
int wifistate=intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,WifiManager.WIFI_STATE_DISABLED);
if(wifistate==WifiManager.WIFI_STATE_DISABLED)
{
//WIFI关闭
} else if(...){
//其他状态
}
}
}
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />