Android涉及到网络的时候,有时候需要检测Android设备的网络状态,通常是使用ConnectivityManager来完成这项检测。
如果只是想要检测是否链接上了网络,可以参考一下代码:
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo == null || !networkInfo.isAvailable()) {
// 不能上网
return false;
} else {
// 能上网
return true;
}
如果想要判断是指定的一种网络链接方式的话(gps或者wifi),可以参考一下代码:
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(wifi.isConnected()){
//true
}
if(mobile.isConnected()){
//true
}
记得在AndroidManifest上加上权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />