wifi打开,连接到网络获得了IP才算连接上,有办法在activity启动的时候判断吗?
另外有没有办法监听断开了wifi网络连接和连接上了wifi网络连接?
另外有没有办法监听断开了wifi网络连接和连接上了wifi网络连接?
解决方案 »
- AlarmManager setRepeating问题
- 关于Intent-Filter的一点问题
- 实现摄像头取词功能
- 【散分】情人节快乐~
- 如果在一个activity中获取应用中的Tabhost?
- android 电信3G的网络定位如何实现呢
- Launcher中的AppsCustomizePagedView.java问题
- 请问一下关于购物车的问题,如何实现单击listview一行中的一个button,让同一行中的editview值加一
- Android 使用自己的keystore生成的apk,不能访问微信登录。求救
- android studio 不能走shadowsocks吗?
- 2.0X的百度地图SDk使用问题
- Context的问题。
ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(wifi == State.CONNECTED){
//WIFI已连接
}监听WifiManager.NETWORK_STATE_CHANGED_ACTION可以获取WIFI网络连接状态改变的广播
监听WifiManager.WIFI_STATE_CHANGED_ACTION可以获取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" />
第一段代码判断WIFI是否连接,我测试的是wifi连接上IP了,也就是在通知栏出现了那个wifi信号强度图标,才wifi == State.CONNECTED,如果仅仅是wifi打开了,附近有好多热点,但是一个也没有登录上的话,wifi的状态不是State.CONNECTED。
第二段代码,wifi打开,以及wifi连接上了热点,状态都能侦测到。不过这个NETWORK_STATE_CHANGED_ACTION,不仅仅是wifi登录或者退出触发,3G网络登录或者退出可能也会触发,我这几天申请个联通3G测试一下看。