我最后使用的办法,网络上搜到的:
public class NetworkUtils {
public final static int NONE = 0;
//无网络
public final static int WIFI = 1;
//Wi-Fi
public final static int MOBILE = 2;
//3G,GPRS
/** * 获取当前网络状态
* @param context
* @return
*/
public static int getNetworkState(Context context){
ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//手机网络判断
State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
if(state == State.CONNECTED||state == State.CONNECTING){
return MOBILE;
}
//Wifi网络判断
state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if(state == State.CONNECTED||state == State.CONNECTING){
return WIFI;
}
return NONE;
}
}
1.从API 16开始,有了这个方法:isActiveNetworkMetered (),判断当前网络是否是计费网络,但是从16才开始有,那么16之前的怎么判断呢?
2.有时候你需要监听网络的变化,比如你做了一个下载的管理器,当网络消失的适合,你需要能够暂停,当网络有的适合,你需要能够继续下载。
http://blog.csdn.net/hehe9737/article/details/7477511
android监听网络变化问题
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=209190&fromuid=511991
(出处: eoe Android开发者社区)
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=209190&fromuid=511991
(出处: eoe Android开发者社区)
如何避免网络变化的多次广播
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=193562&fromuid=511991
(出处: eoe Android开发者社区)
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=193562&fromuid=511991
(出处: eoe Android开发者社区)
http://developer.android.com/reference/android/telephony/PhoneStateListener.html
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=193562
如何避免网络变化的多次广播
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=193562&fromuid=511991
(出处: eoe Android开发者社区)
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=193562&fromuid=511991
(出处: eoe Android开发者社区)
http://www.apkbus.com/android-66880-1-1.html