Android:没有输入wifi扫描结果的if语句?

时间:2015-04-10 13:40:09

标签: android broadcastreceiver

我在MainActivity中构建了BroadcastReceiver以捕获系统广播(互联网连接和wifi扫描结果)。互联网连接广播正在被抓住,但我面临着接收wifi扫描结果的广播的问题。没有错误被抛出。我不知道我应该添加什么来让它工作。我感谢任何帮助。

MainActivity:



public class MainActivity extends ActionBarActivity {
	BroadcastReceiverListener receiver;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		receiver = new BroadcastReceiverListener();

	}

	private class BroadcastReceiverListener extends BroadcastReceiver {
		@Override
		public void onReceive(Context context, Intent intent) {
			//This if statement is being arrived
			if (intent.getAction().equals(
					android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
				     //This code  works without BroadcastReceiver.

			}

			else if (intent.getAction().equals(
					android.net.ConnectivityManager.CONNECTIVITY_ACTION)) {
				// I am getting here broadcast for the internet connection

			}
		}
	};

	protected void onResume() {

		IntentFilter wifi = new IntentFilter();
		wifi.addAction(android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
		registerReceiver(receiver, wifi);

		IntentFilter conn = new IntentFilter();
		conn.addAction(android.net.ConnectivityManager.CONNECTIVITY_ACTION);
		registerReceiver(receiver, conn);

		super.onResume();
	}

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

}




1 个答案:

答案 0 :(得分:0)

无需创建两个IntentFilter,只需创建一个并使用addAction()添加多个操作:

IntentFilter wifi = new IntentFilter();
wifi.addAction(android.net.wifi.WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
wifi.addAction(android.net.ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(receiver, wifi);

见这里:

Android - Registering a broadcast receiver for two intents?