network: Android 网络判断(wifi、3G与其他)

原创 2012年03月21日 13:55:59
 

package mark.zeng;  
  
import java.util.List;  
  
import android.content.Context;  
import android.location.LocationManager;  
import android.net.ConnectivityManager;  
import android.net.NetworkInfo;  
import android.telephony.TelephonyManager;  
  
public class NetworkProber {  
  
    /** 
     * 网络是否可用 
     *  
     * @param activity 
     * @return 
     */  
    public static boolean isNetworkAvailable(Context context) {  
        ConnectivityManager connectivity = (ConnectivityManager) context  
                .getSystemService(Context.CONNECTIVITY_SERVICE);  
        if (connectivity == null) {  
        } else {  
            NetworkInfo[] info = connectivity.getAllNetworkInfo();  
            if (info != null) {  
                for (int i = 0; i < info.length; i++) {  
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {  
                        return true;  
                    }  
                }  
            }  
        }  
        return false;  
    }  
  
    /** 
     * Gps是否打开 
     *  
     * @param context 
     * @return 
     */  
    public static boolean isGpsEnabled(Context context) {  
        LocationManager locationManager = ((LocationManager) context  
                .getSystemService(Context.LOCATION_SERVICE));  
        List<String> accessibleProviders = locationManager.getProviders(true);  
        return accessibleProviders != null && accessibleProviders.size() > 0;  
    }  
  
    /** 
     * wifi是否打开 
     */  
    public static boolean isWifiEnabled(Context context) {  
        ConnectivityManager mgrConn = (ConnectivityManager) context  
                .getSystemService(Context.CONNECTIVITY_SERVICE);  
        TelephonyManager mgrTel = (TelephonyManager) context  
                .getSystemService(Context.TELEPHONY_SERVICE);  
        return ((mgrConn.getActiveNetworkInfo() != null && mgrConn  
                .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel  
                .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);  
    }  
  
    /** 
     * 判断当前网络是否是wifi网络 
     * if(activeNetInfo.getType()==ConnectivityManager.TYPE_MOBILE) { //判断3G网 
     *  
     * @param context 
     * @return boolean 
     */  
    public static boolean isWifi(Context context) {  
        ConnectivityManager connectivityManager = (ConnectivityManager) context  
                .getSystemService(Context.CONNECTIVITY_SERVICE);  
        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();  
        if (activeNetInfo != null  
                && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {  
            return true;  
        }  
        return false;  
    }  
  
    /** 
     * 判断当前网络是否是3G网络 
     *  
     * @param context 
     * @return boolean 
     */  
    public static boolean is3G(Context context) {  
        ConnectivityManager connectivityManager = (ConnectivityManager) context  
                .getSystemService(Context.CONNECTIVITY_SERVICE);  
        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();  
        if (activeNetInfo != null  
                && activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {  
            return true;  
        }  
        return false;  
    }  

另外还有两个方法判断网络是否可用:

public static boolean isNetworkAvailable_00(Context context) {  
        ConnectivityManager cm = ((ConnectivityManager) context  
                .getSystemService(Context.CONNECTIVITY_SERVICE));  
        if (cm != null) {  
            NetworkInfo info = cm.getActiveNetworkInfo();  
            if (info != null && info.isConnectedOrConnecting()) {  
                return true;  
            }  
        }  
        return false;  
    }  
  
    public static boolean isNetworkAvailable_01(Context context) {  
        ConnectivityManager cm = (ConnectivityManager) context  
                .getSystemService(Context.CONNECTIVITY_SERVICE);  
        NetworkInfo network = cm.getActiveNetworkInfo();  
        if (network != null) {  
            return network.isAvailable();  
        }  
        return false;  
    } 
更加严谨的写法:
public static boolean checkNet(Context context) {  
          
        try {  
            ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  
            if (connectivity != null) {  
              
                NetworkInfo info = connectivity.getActiveNetworkInfo();  
                if (info != null && info.isConnected()) {  
                  
                    if (info.getState() == NetworkInfo.State.CONNECTED) {  
                        return true;  
                    }  
                }  
            }  
        } catch (Exception e) {  
        return false;  
}  
        return false;  
    } 

 

Android判断上网方式(Wifi还是数据流量)

首先要在AndroidManifest.xml加上权限: 判断有无网络连接: ConnectivityManager mConnectivity = (ConnectivityManager)ge...
  • xundh
  • xundh
  • 2015年04月07日 09:40
  • 15977

Android 判断是否为Wifi网络

判断当前网络是否是wifi。 /** * make true current connect service is wifi * @param mContext * @retu...
  • jianghuiquan
  • jianghuiquan
  • 2013年04月10日 20:07
  • 14042

Android之判断手机连接的网络类型是WIFI还是2G/3G/4G

首先定义不同网络类型返回的常量值:public class Constants { /** * Unknown network class */ public st...
  • wei_zhi
  • wei_zhi
  • 2015年12月12日 20:06
  • 5539

Android 判断网络是否可用、网络类型WIFI/2G/3G/4G及获取IP

在中
  • csdnadcode
  • csdnadcode
  • 2014年09月02日 21:41
  • 4356

iOS 中如何判断当前是2G/3G/4G/5G/WiFi

5G 什么的,还得等苹果API更新啊,不过将来还是这个处理过程就是了。 关于判断当前的网络环境是2G/3G/4G,这个问题以前经常看到,最近在一工程里看到了如果判断的API。而在撸WebRTC音视频...
  • u011619283
  • u011619283
  • 2016年07月13日 17:30
  • 4622

Android开发之强大的网络判断工具,判断是否联网,判断是wifi还是3g网络等java工具代码类

作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985,转载请说明出处。给大家分享一个Android开发者常用的工具类。主要针对网络判断的功能强大。下面贴源代...
  • qq_21376985
  • qq_21376985
  • 2016年07月01日 10:41
  • 2213

android中判断网络连接是否可用 2g、3g、wifi

一、判断网络连接是否可用   public static boolean isNetworkAvailable(Context context) { Connec...
  • qq_21445563
  • qq_21445563
  • 2017年07月27日 11:37
  • 238

Android网络类型判断(2g、3g、wifi)

判断网络类型是wifi,还是3G,还是2G网络,对不同 的网络进行不同的处理,现将判断方法整理给大家,以供参考   说明:下面用到的数据移动2G,联通2G,联通3G,wifi我都已经测试过,暂时...
  • u011695847
  • u011695847
  • 2013年10月13日 14:54
  • 4605

Android开发之强大的网络判断工具,判断是否联网,判断是wifi还是3g网络等java工具代码类

  • 2016年07月01日 10:43
  • 3KB
  • 下载

4.2.2.5 android 判断3G、wifi、2G等网络状态连接

android 判断3G、wifi、2G等网络状态连接   (2012-08-30 16:40:24) 转载▼ 标签:  android   java ...
  • Rodulf
  • Rodulf
  • 2016年02月28日 10:29
  • 413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:network: Android 网络判断(wifi、3G与其他)
举报原因:
原因补充:

(最多只允许输入30个字)