1. 程式人生 > >Android檢測網路狀態,判斷當前網路是否可用

Android檢測網路狀態,判斷當前網路是否可用

使用者手機當前網路可用:WIFI、2G/3G網路,使用者開啟與不開啟網路,和是否可以用是兩碼事。可以使用指的是:使用者開啟網路了並且可以連上網際網路進行上網。
檢測當前網路是否可用,程式碼如下:

/**
	 * 檢測當的網路(WLAN、3G/2G)狀態
	 * @param context Context
	 * @return true 表示網路可用
	 */
	public static boolean isNetworkAvailable(Context context) {
		ConnectivityManager connectivity = (ConnectivityManager) context
				.getSystemService(Context.CONNECTIVITY_SERVICE);
		if (connectivity != null) {
			NetworkInfo info = connectivity.getActiveNetworkInfo();
			if (info != null && info.isConnected()) 
			{
				// 當前網路是連線的
				if (info.getState() == NetworkInfo.State.CONNECTED) 
				{
					// 當前所連線的網路可用
					return true;
				}
			}
		}
		return false;
	}

在AndroidManifest.xml檔案新增的許可權:

  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.INTERNET"/>