Я использую этот фрагмент кода для обнаружения изменений состояния подключения к Интернету. Он отлично работает на Android‹5.0, но на API 21 это:
intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY)
всегда ложно. Как заставить этот код работать на Android 5.0?
Мой широковещательный приемник:
public class NetworkStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
if(intent.getExtras()!=null) {
final ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if(networkInfo != null && networkInfo.isConnectedOrConnecting()) {
Log.d("receiver test", "detected on");
}
}
Log.d("receiver test", Boolean.toString(intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY)));
if(intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE)) {
Log.d("receiver test", "detected off");
}
}
}