• network: Android 网络推断(wifi、3G与其它)


    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; 
    }

  • 相关阅读:
    04.VUE学习之v-text v-html
    03.VUE学习之动态绑定值
    2019年Vue学习路线图
    02.VUE学习二之数据绑定
    01.VUE学习一
    一张图解析FastAdmin中的表格列表的功能
    python 正则表达式与JSON字符串
    jQuery的select2下拉框的搜索功能(使用select2插件,方便简单)
    笔记1 python入门学习笔记
    MySQL----Navicat使用
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5067385.html
Copyright © 2020-2023  润新知