Начиная с Android 8 (Oreo), вы больше не можете зарегистрировать BroadcastReceiver
для неявного Intent
в манифесте.Вот что вы делаете с этим:
<receiver
android:name=".fcm.OpenNotificationReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.app.OPEN" />
</intent-filter>
</receiver>
Вместо этого вы должны использовать явное Intent
следующим образом:
Измените запись манифеста на эту:
<receiver
android:name=".fcm.OpenNotificationReceiver">
</receiver>
и измените код, который вы используете для создания PendingIntent
для Notification
, следующим образом:
Intent intent = new Intent(this, OpenNotificationReceiver.class);
intent.putExtra(ForSaleConstants.ACTIVITY_NOTIFICATION_TYPE, mType);
intent.putExtra(ForSaleConstants.ACTIVITY_NOTIFICATION_ID, mId);
intent.putExtra(ForSaleConstants.ACTIVITY_NOTIFICATION_DIALOG_ID, mDialogId);
intent.putExtra(ForSaleConstants.ACTIVITY_NOTIFICATION_MESSAGE_ID, mMessageId);
Notification notification = null;
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), requestID,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
Для получения дополнительной информации см. https://developer.android.com/about/versions/oreo/background ипоиск "Ограничения на вещание"