В моем приложении есть 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 или какая разница между ними?