В моем приложении BroadcastReceiver
запускается как компонент через тег <receiver>
с фильтрацией android.net.conn.CONNECTIVITY_CHANGE
намерений.
Моя цель - просто узнать, когда было установлено соединение Wi-Fi, так что я делаю в onReceive()
следующее:
NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI && networkInfo.isConnected()) {
// Wifi is connected
}
Это работает нормально, но я всегда, кажется, получаю два идентичных намерения в течение примерно одной секунды, когда устанавливается соединение Wi-Fi. Я пытался посмотреть любую информацию, которую я мог получить из намерения, ConnectivityManager
и WifiManager
, но я не могу найти ничего, что отличало бы эти два намерения.
Глядя на журнал, есть по крайней мере еще один BroadcastReceiver
, который также получает два идентичных намерения.
Он работает на HTC Desire с Android 2.2
Есть идеи, почему у меня появляется "дублированное" намерение при подключении к Wi-Fi или какая разница между ними может быть?