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" />