简体   繁体   English

Android:是否未输入wifi扫描结果的if语句?

[英]Android:The if statement of wifi scan result is not being entered?

I have built BroadcastReceiver in my MainActivity to catch system broadcast(internet connection and wifi scan result). 我已经在MainActivity中构建了BroadcastReceiver来捕获系统广播(互联网连接和wifi扫描结果)。 The internet connection broadcast is being caught but I am facing problem to catch the broadcast of the wifi scan result. Internet连接广播正在被捕获,但是我要捕获wifi扫描结果的广播面临问题。 no error is being thrown. 没有错误被抛出。 I do not know what shall I add additional to get it work. 我不知道我应该添加些什么来使其正常工作。 I appreciate any help. 感谢您的帮助。

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(); } } 

There's no need to create two IntentFilters, just create the one and use addAction() to add multiple actions: 无需创建两个IntentFilter,只需创建一个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);

See here: 看这里:

Android - Registering a broadcast receiver for two intents? Android-为两个目的注册广播接收器?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM