android当前网络连接类型判断

Posted 庚拓天下

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android当前网络连接类型判断相关的知识,希望对你有一定的参考价值。

package net.nyist.netState;  
  
import android.content.Context;  
import android.net.ConnectivityManager;  
import android.net.NetworkInfo;  
  
/**@author  
 *  
 *这是一个判断当前网络状态的工具类 
 * 
 */  
public class netState {  
    /** 
     *  
     * @return 是否有活动的网络连接 
     */  
    public final boolean hasNetWorkConnection(Context context){  
        //获取连接活动管理器  
        final ConnectivityManager connectivityManager= (ConnectivityManager) context.  
                getSystemService(Context.CONNECTIVITY_SERVICE);  
        //获取链接网络信息  
        final NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();  
          
        return (networkInfo!= null && networkInfo.isAvailable());  
          
    }  
    /** 
     * @return 返回boolean ,是否为wifi网络 
     *  
     */  
    public final boolean hasWifiConnection(Context context)  
    {     
        final ConnectivityManager connectivityManager= (ConnectivityManager) context.  
                getSystemService(Context.CONNECTIVITY_SERVICE);  
        final NetworkInfo networkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);  
        //是否有网络并且已经连接  
        return (networkInfo!=null&& networkInfo.isConnectedOrConnecting());  
          
          
    }  
      
    /** 
     * @return 返回boolean,判断网络是否可用,是否为移动网络 
     *  
     */  
      
    public final boolean hasGPRSConnection(Context context){  
        //获取活动连接管理器  
        final ConnectivityManager connectivityManager= (ConnectivityManager) context.  
                getSystemService(Context.CONNECTIVITY_SERVICE);  
        final NetworkInfo networkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);  
        return (networkInfo!=null && networkInfo.isAvailable());  
          
    }  
    /** 
     * @return  判断网络是否可用,并返回网络类型,ConnectivityManager.TYPE_WIFI,ConnectivityManager.TYPE_MOBILE,不可用返回-1 
     */  
    public static final int getNetWorkConnectionType(Context context){  
        final ConnectivityManager connectivityManager=(ConnectivityManager) context.  
                getSystemService(Context.CONNECTIVITY_SERVICE);  
        final NetworkInfo wifiNetworkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);  
        final NetworkInfo mobileNetworkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);  
          
          
        if(wifiNetworkInfo!=null &&wifiNetworkInfo.isAvailable())  
        {  
            return ConnectivityManager.TYPE_WIFI;  
        }  
        else if(mobileNetworkInfo!=null &&mobileNetworkInfo.isAvailable())  
        {  
            return ConnectivityManager.TYPE_MOBILE;  
        }  
        else {  
            return -1;  
        }  
          
          
    }  
      
}

 

以上是关于android当前网络连接类型判断的主要内容,如果未能解决你的问题,请参考以下文章

Android详解Android 网络操作

Android 使用两个不同的代码片段获取当前位置 NULL

Android 10. 判定Socket 是不是连接网络

Android 网络连接判断与处理

在Android开发中如何判读当前设备是否连接网络

Android 网络连接状态的监控