В моем приложении у меня есть 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
Любая идея, почему я, похоже, получаю "дублированное" намерение, когда Wifi подключается или какая разница между этими двумя?