android NetWorkHelper 网络工具类

时间:2023-02-17 09:02:16
[html] view plaincopyprint?
  1. import android.content.Context;  
  2. import android.net.ConnectivityManager;  
  3. import android.net.NetworkInfo;  
  4. import android.net.Uri;  
  5. import android.net.NetworkInfo.State;  
  6. import android.telephony.TelephonyManager;  
  7. import android.util.Log;  
  8.   
  9. public class NetWorkHelper {  
  10.     public static final int NETWORN_NONE = 0;  
  11.     public static final int NETWORN_WIFI = 1;  
  12.     public static final int NETWORN_MOBILE = 2;  
  13.     private static String LOG_TAG = "NetWorkHelper";  
  14.   
  15.     public static Uri uri = Uri.parse("content://telephony/carriers");  
  16.   
  17.     /**  
  18.      * 判断是否有网络  
  19.      */  
  20.     public static boolean isNetworkAvailable(Context context) {  
  21.         ConnectivityManager connectivity = (ConnectivityManager) context  
  22.                 .getSystemService(Context.CONNECTIVITY_SERVICE);  
  23.   
  24.         if (connectivity == null) {  
  25.             Log.w(LOG_TAG, "couldn't get connectivity manager");  
  26.         } else {  
  27.             NetworkInfo[] info = connectivity.getAllNetworkInfo();  
  28.             if (info != null) {  
  29.                 for (int i = 0; i < info.length; i++) {  
  30.                     if (info[i].isAvailable()) {  
  31.                         Log.d(LOG_TAG, "network is available");  
  32.                         return true;  
  33.                     }  
  34.                 }  
  35.             }  
  36.         }  
  37.         Log.d(LOG_TAG, "network is not available");  
  38.         return false;  
  39.     }  
  40.     /**  
  41.      * 检查网络状态  
  42.      * @param context  
  43.      * @return  
  44.      */  
  45.     public static boolean checkNetState(Context context){  
  46.         boolean netstate = false;  
  47.         ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  48.         if(connectivity != null)  
  49.         {  
  50.             NetworkInfo[] info = connectivity.getAllNetworkInfo();  
  51.             if (info != null) {  
  52.                 for (int i = 0; i < info.length; i++)  
  53.                 {  
  54.                     if (info[i].getState() == NetworkInfo.State.CONNECTED)   
  55.                     {  
  56.                         netstate = true;  
  57.                         break;  
  58.                     }  
  59.                 }  
  60.             }  
  61.         }  
  62.         return netstate;  
  63.     }  
  64.   
  65.     /**  
  66.      * 判断网络是否为漫游  
  67.      */  
  68.     public static boolean isNetworkRoaming(Context context) {  
  69.         ConnectivityManager connectivity = (ConnectivityManager) context  
  70.                 .getSystemService(Context.CONNECTIVITY_SERVICE);  
  71.         if (connectivity == null) {  
  72.             Log.w(LOG_TAG, "couldn't get connectivity manager");  
  73.         } else {  
  74.             NetworkInfo info = connectivity.getActiveNetworkInfo();  
  75.             if (info != null  
  76.                     && info.getType() == ConnectivityManager.TYPE_MOBILE) {  
  77.                 TelephonyManager tm = (TelephonyManager) context  
  78.                         .getSystemService(Context.TELEPHONY_SERVICE);  
  79.                 if (tm != null && tm.isNetworkRoaming()) {  
  80.                     Log.d(LOG_TAG, "network is roaming");  
  81.                     return true;  
  82.                 } else {  
  83.                     Log.d(LOG_TAG, "network is not roaming");  
  84.                 }  
  85.             } else {  
  86.                 Log.d(LOG_TAG, "not using mobile network");  
  87.             }  
  88.         }  
  89.         return false;  
  90.     }  
  91.   
  92.     /**  
  93.      * 判断MOBILE网络是否可用  
  94.      *   
  95.      * @param context  
  96.      * @return  
  97.      * @throws Exception  
  98.      */  
  99.     public static boolean isMobileDataEnable(Context context) {  
  100.         ConnectivityManager connectivityManager = (ConnectivityManager) context  
  101.                 .getSystemService(Context.CONNECTIVITY_SERVICE);  
  102.         boolean isMobileDataEnable = false;  
  103.   
  104.         isMobileDataEnable = connectivityManager.getNetworkInfo(  
  105.                 ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();  
  106.   
  107.         return isMobileDataEnable;  
  108.     }  
  109.   
  110.       
  111.     /**  
  112.      * 判断wifi 是否可用  
  113.      * @param context  
  114.      * @return  
  115.      * @throws Exception  
  116.      */  
  117.     public static boolean isWifiDataEnable(Context context) {  
  118.         ConnectivityManager connectivityManager = (ConnectivityManager) context  
  119.                 .getSystemService(Context.CONNECTIVITY_SERVICE);  
  120.         boolean isWifiDataEnable = false;  
  121.         isWifiDataEnable = connectivityManager.getNetworkInfo(  
  122.                 ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();  
  123.         return isWifiDataEnable;  
  124.     }  
  125.   
  126.       
  127.     public static int getNetworkState(Context context){  
  128.         ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);  
  129.   
  130.         //Wifi  
  131.         State state = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();  
  132.         if(state == State.CONNECTED||state == State.CONNECTING){  
  133.             return NETWORN_WIFI;  
  134.         }  
  135.   
  136.         //3G  
  137.         state = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();  
  138.         if(state == State.CONNECTED||state == State.CONNECTING){  
  139.             return NETWORN_MOBILE;  
  140.         }  
  141.         return NETWORN_NONE;  
  142.     }  
  143.       
  144. }  



转自http://blog.csdn.net/caiwenfeng_for_23/article/details/38100711