Android检测网络是否可用并获取网络类型

在类中使用getSystemService的时候需要这样进行使用:1.

public class JajaMenu extends Activity 
{
    public static JajaMenu instance;
    
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.init();
        instance=this;
    }
    
  //获取实例
      public static JajaMenu getInstance(){
          return instance;
      }
}

2.调用

public static final int NETTYPE_WIFI = 0x01;
public static final int NETTYPE_CMWAP = 0x02;
public static final int NETTYPE_CMNET = 0x03;

 

/**
     * 检测网络是否可用
     * @return
     */
    public boolean isNetworkConnected(){
        ConnectivityManager cm=(ConnectivityManager)JajaMenu.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo=cm.getActiveNetworkInfo();
        return networkInfo !=null && networkInfo.isConnectedOrConnecting();
    }
    
    /**
     * 获取网络类型
     * @return 0:没有网络   1:WIFI网络   2:WAP网络    3:NET网络
     * */
    public int getNetworkType(){
        int netType=0;
        ConnectivityManager cm=(ConnectivityManager)JajaMenu.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo=cm.getActiveNetworkInfo();
        if(networkInfo == null){
            return netType;
        }
        int nType=networkInfo.getType();
        if(nType ==ConnectivityManager.TYPE_MOBILE){
            String extraInfo=networkInfo.getExtraInfo();
            if(!extraInfo.isEmpty()){
                String strInfo=extraInfo.toLowerCase();
                if(strInfo.equals("cmnet")){
                    netType=NETTYPE_CMNET;
                }
                else{
                    netType=NETTYPE_CMWAP;
                }
            }
        }
        else if(nType ==ConnectivityManager.TYPE_WIFI){
            netType=NETTYPE_WIFI;
        }
        return netType;
    }

 

posted @ 2015-01-19 15:21  Follow-your-heart  阅读(219)  评论(0编辑  收藏  举报