Android: 判断网络状态

判断当前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);

	                	

	                }

            	}

                    

			}



		}


 

 

你可能感兴趣的:(android)