Android:ネットワークの状態を判断

1548 ワード

現在のWifiまたはEthernet接続状態を判断する:
 
	public static boolean isNetworkConnected(Context context) {

		ConnectivityManager cm = (ConnectivityManager) context

				.getSystemService(Context.CONNECTIVITY_SERVICE);

		NetworkInfo info = cm.getActiveNetworkInfo();

		if (info != null) {

			int type = info.getType();

			if (type == ConnectivityManager.TYPE_WIFI || 

				type == ConnectivityManager.TYPE_ETHERNET) {

				return info.isAvailable();

			}			

		} 

		

		return false;

	}

BroadcastReceiverでWifiまたはEthernet接続状態を監視する:
 
 
		if (ConnectivityManager.CONNECTIVITY_ACTION.equals(action)) {

			Bundle extras = intent.getExtras();

			if (extras != null) {

                NetworkInfo networkInfo =

                        (NetworkInfo)extras.get(ConnectivityManager.EXTRA_NETWORK_INFO);

                if (networkInfo == null) return;

                

                State state = networkInfo.getState();

                int networkType = networkInfo.getType();

            	if (networkType == ConnectivityManager.TYPE_WIFI || 

                	networkType == ConnectivityManager.TYPE_ETHERNET) {

	                if (state == State.CONNECTED) {

	                	mListener.onNetworkStateChange(true);

	                	

	                } else if (state == State.DISCONNECTED) {

	                	mListener.onNetworkStateChange(false);

	                	

	                }

            	}

                    

			}



		}