您的位置:首页 > 理论基础 > 计算机网络

监听网络状态的改变

2014-12-09 16:17 357 查看
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;

public class ConnectivityActivity extends Activity {
	ConnectivityManager manager;
	static final String TAG = "ConnectivityActivity";

	private BroadcastReceiver NetworkReceiver = new BroadcastReceiver() {
		public void onReceive(android.content.Context context,
				android.content.Intent intent) {
			//默认值一定要为false
			boolean isNetworkAvail = intent.getBooleanExtra(
					ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
			//api17以后多了ConnectivityManager.EXTRA_NETWORK_TYPE
		}
	};

	protected void onCreate(android.os.Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		manager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);

		NetworkInfo info = manager.getActiveNetworkInfo();
		if (info == null)
			Log.i(TAG, "没有可用的连接");

		/**
		 * 判断是否连接代码
		 */
		if (info.getState() == NetworkInfo.State.CONNECTED) {
			Log.i(TAG, "已经连接");
		} else if (info.getState() == NetworkInfo.State.DISCONNECTED
				|| info.getState() == NetworkInfo.State.CONNECTING
				|| info.getState() == NetworkInfo.State.DISCONNECTING) {
			Log.i(TAG, "未连接");
		}

		boolean isWifi = info.getType() == ConnectivityManager.TYPE_WIFI;

		//监听网络状态的改变
		registerReceiver(NetworkReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)) ;
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: