Попытка проверить подключение к Интернету в моем приложении. Существует код моего манифеста:Broadcast Receiver звонит дважды
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<receiver android:name=".MyReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
И есть класс ручки:
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction() != null && intent.getAction().equals("android.net.conn.CONNECTIVITY_CHANGE"));
{
Log.d("myLogs", "Network connectivity change");
if (intent.getExtras() != null) {
NetworkInfo ni = (NetworkInfo) intent.getExtras().get(
ConnectivityManager.EXTRA_NETWORK_INFO);
if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
Log.i("myLogs", "Network " + ni.getTypeName() + " connected");
}
}
if (intent.getExtras().getBoolean(
ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE)) {
Log.d("myLogs", "There's no network connectivity");
}
}
}
}
В моей LogCat я получить картину вроде:
04-11 23:24:48.021: D/myLogs(10261): Network connectivity change
04-11 23:24:48.021: I/myLogs(10261): Network WIFI connected
04-11 23:24:48.202: D/myLogs(10261): Network connectivity change
04-11 23:24:48.202: I/myLogs(10261): Network WIFI connected
Итак, ресивер звонил дважды. Зачем? Существует некоторая проблема со всеми типами соединений.
Возможно, существуют разные уровни подключения, а ваши 2 журнала - это 2 разных под-состояния. Я выхожу из дополнительной информации, чтобы узнать, как они отличаются. –
Попробуйте войти 'если (NETINFO! = NULL && netInfo.isConnected()) { \t \t \t \t \t Log.i ("Сеть" "myLogs" + NETINFO.getTypeName() + "connected"); \t \t \t} ' есть идея, что есть два суб-состояние - isConnecting и IsConnected, но та же проблема/ – Sunstrike