android 網路通知的問題

心鑫發表於2013-08-29
package com.example.testp;

import android.net.ConnectivityManager;
import android.net.NetworkInfo.State;
import android.os.Bundle;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {
	class myTcpMapJingKongReceiver extends BroadcastReceiver {

		@Override
		public void onReceive(Context context, Intent intent) {
			String action = intent.getAction();
			printf_log("action-->"+action);
			if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
				State wifiState = null;
				State mobileState = null;
				ConnectivityManager cm = (ConnectivityManager) context
						.getSystemService(Context.CONNECTIVITY_SERVICE);
				wifiState = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
						.getState();
				mobileState = cm
						.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
						.getState();
				if (wifiState != null && mobileState != null
						&& State.CONNECTED != wifiState
						&& State.CONNECTED == mobileState) {
					printf_log("手機網路連線成功");
				} else if (wifiState != null && mobileState != null
						&& State.CONNECTED != wifiState
						&& State.CONNECTED != mobileState) {
					printf_log("手機沒有任何的網路");
				} else{
					printf_log("無線網路連線成功");
				}
			}
		}
	}

	myTcpMapJingKongReceiver mt ;

	private void printf_log(String string) {
		Log.d("Main", string);
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		printf_log("oncreate");
		mt=new myTcpMapJingKongReceiver();
		this.registerReceiver(mt, new IntentFilter(
				ConnectivityManager.CONNECTIVITY_ACTION));
	}

	@Override
	protected void onResume() {
		printf_log("onResume");
//		try {
//			HttpGetUtils.getStringFromUrl("http://126.com", null);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
		super.onResume();
	}

	@Override
	protected void onDestroy() {
		this.unregisterReceiver(mt);
		super.onDestroy();
	}
}


輸出內容 不明白為什麼會有通知
android.net.conn.CONNECTIVITY_CHANGE


08-29 18:06:56.960: D/Main(11044): oncreate
08-29 18:06:56.976: D/Main(11044): onResume
08-29 18:06:56.984: D/Main(11044): action-->android.net.conn.CONNECTIVITY_CHANGE
08-29 18:06:56.992: D/Main(11044): 無線網路連線成功


相關文章