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

时间:2023-12-02 15:52:14

在类中使用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;
}