Как получить данные уведомления fcm, когда приложение не в задаче или не убито?

Мне нужно получать данные из уведомлений FCM в android и хранить их локально, но проблема в том, что я могу сделать это только тогда, когда приложение находится на переднем плане, а затем вызывается onMessageRecieved или когда пользователь нажимает на уведомление. Я хочу получать данные уведомления, когда пользователь получает уведомление, а приложение не работает, даже в фоновом или переднем плане. Пожалуйста, предложите что-нибудь. Заранее спасибо.

увидеть это stackoverflow.com/questions/37711082/…

Bunny 31.10.2018 13:00

Я уже видел эту ссылку раньше, спасибо, но мне нужно это сделать, даже если приложение удалено из задачи или убито.

Maximus 31.10.2018 13:06
0
2
1 279
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Используя консоль FCM, вы можете отправлять только уведомления. сообщения с уведомлениями могут обрабатываться методом onMessageReceived в фоновом приложении и доставляться на панель задач устройства в фоновом приложении. Пользователь нажимает на уведомление, и открывается панель запуска приложений по умолчанию. если вы хотите обрабатывать уведомление в каждом состоянии приложения, вы должны использовать сообщение с данными и метод onMessageReceived.

Обратитесь к это для получения дополнительной информации.

Мне нужны данные уведомлений, даже если приложение не в фоновом или переднем плане.

Maximus 31.10.2018 13:08
Ответ принят как подходящий

Вы можете использовать BroadcastReceiver

public class FirebaseDataReceiver extends BroadcastReceiver {

    private final String TAG = "FirebaseDataReceiver";

    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        if (bundle != null) {
            Set<String> keys = intent.getExtras().keySet();

            for (String key : bundle.keySet()) {
                Object value = bundle.get(key);
                // You can use key and values here
            }
        }
    }
}

Manifest.xml

<application>

    ............

    <receiver
        android:name="PackageName.FirebaseDataReceiver"
        android:exported="true"
        android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        </intent-filter>
    </receiver>

    ............

</application>

Спасибо, он работает, даже когда приложение не работает в фоновом режиме, именно то, что я хотел :))))

Maximus 31.10.2018 14:15

Другие вопросы по теме