Спасибо за @ TheWanderer , который помог мне с помощью своего комментария найти ответ.В примечании об изменениях поведения Android 8.0 разработчики упомянули следующее:
Приложения не могут использовать свои манифесты для регистрации для большинства неявных трансляций (то есть трансляций, которые не предназначены специально дляapp).
Поэтому я попытался программно зарегистрировать мой BroadcastReceiver, как показано ниже, вместо создания записи манифеста для него:
private AnprEventReciever myReceiver;
private IntentFilter filter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_resource);
filter = new IntentFilter();
filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
myReceiver = new AnprEventReciever();
}
@Override
protected void onResume() {
super.onResume();
registerReceiver(myReceiver, filter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(myReceiver);
}
Он работает отлично, однако, к сожалению, действие "android.intent.action. CONNECTIVITY_CHANGE"кажется устаревшим, когда я не смог найти его в классе Intent, и я не знаю, найден ли он где-либо еще.
Примечание: во время чтения я обнаружил, что необходимо отменить регистрацию приемника вещания, когда действие приостанавливается или прерывается, в противном случае вы можете получить ошибку при попытке зарегистрировать или перерегистрировать его.
ОБНОВЛЕНИЕ:
Создать фильтр намерений с ConnectivityManager.CONNECTIVITY_ACTION вместо "android.intent.action.CONNECTIVITY_CHANGE "для получения сообщений о смене широковещательных сообщений.