下方是一个很好的监测网络、状态的工具类
 
class="dp-j" start="1">
- public class NetworkUtils {  
-   
-      
-  
-  
-  
-  
-   
-     public static boolean isNetworkAvailable(Context context) {  
-         ConnectivityManager connectivity = (ConnectivityManager) context  
-                 .getSystemService(Context.CONNECTIVITY_SERVICE);  
-         if (connectivity == null) {  
-         } else {  
-             NetworkInfo[] info = connectivity.getAllNetworkInfo();  
-             if (info != null) {  
-                 for (int i = 0; i < info.length; i++) {  
-                     if (info[i].getState() == NetworkInfo.State.CONNECTED) {  
-                         return true;  
-                     }  
-                 }  
-             }  
-         }  
-         return false;  
-     }  
-   
-   
-      
-  
-  
-  
-  
-   
-     public static boolean isGpsEnabled(Context context) {  
-         LocationManager locationManager = ((LocationManager) context  
-                 .getSystemService(Context.LOCATION_SERVICE));  
-         List<String> accessibleProviders = locationManager.getProviders(true);  
-         return accessibleProviders != null && accessibleProviders.size() > 0;  
-     }  
-   
-      
-  
-   
-     public static boolean isWifiEnabled(Context context) {  
-         ConnectivityManager mgrConn = (ConnectivityManager) context  
-                 .getSystemService(Context.CONNECTIVITY_SERVICE);  
-         TelephonyManager mgrTel = (TelephonyManager) context  
-                 .getSystemService(Context.TELEPHONY_SERVICE);  
-         return ((mgrConn.getActiveNetworkInfo() != null && mgrConn  
-                 .getActiveNetworkInfo().getState() == NetworkInfo.State.CONNECTED) || mgrTel  
-                 .getNetworkType() == TelephonyManager.NETWORK_TYPE_UMTS);  
-     }  
-   
-      
-  
-  
-  
-  
-  
-   
-     public static boolean isWifi(Context context) {  
-         ConnectivityManager connectivityManager = (ConnectivityManager) context  
-                 .getSystemService(Context.CONNECTIVITY_SERVICE);  
-         NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();  
-         if (activeNetInfo != null  
-                 && activeNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {  
-             return true;  
-         }  
-         return false;  
-     }  
-   
-      
-  
-  
-  
-  
-   
-     public static boolean is3G(Context context) {  
-         ConnectivityManager connectivityManager = (ConnectivityManager) context  
-                 .getSystemService(Context.CONNECTIVITY_SERVICE);  
-         NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();  
-         if (activeNetInfo != null  
-                 && activeNetInfo.getType() == ConnectivityManager.TYPE_MOBILE) {  
-             return true;  
-         }  
-         return false;  
-     }  
- }  
 
以上方法均通过测试,tv_result为自设定的TextView。
 
 
- tv_result.append("网络是否可用:"+NetworkUtils.isNetworkAvailable(MainActivity.this)+"\n");  
- tv_result.append("GPS开关是否打开:"+NetworkUtils.isGpsEnabled(MainActivity.this)+"\n");  
- tv_result.append("是否为3G网络:"+NetworkUtils.is3G(MainActivity.this)+"\n");  
- tv_result.append("WIFI是否打开:"+NetworkUtils.isWifiEnabled(MainActivity.this)+"\n");  
- tv_result.append("是否为WIFI网络:"+NetworkUtils.isWifi(MainActivity.this)+"\n");