Wenn Sie Notification-Payload verwenden, zeigt Ihre App immer eine Benachrichtigung im Hintergrund an. Vielleicht möchten Sie einfach Daten-Payload verwenden, was beim Senden der Nachricht von der Konsole nicht möglich ist. Sie müssen also Ihren eigenen Webserver haben, um Ihre Nachricht mit nur einem Daten-Payload-Schlüssel an den fcm-Server zu senden. Nachdem Sie dies getan haben, müssen Sie überprüfen, ob Ihre App im Vordergrund oder im Hintergrund ist, da Ihre onMessageReceived()
immer ausgelöst wird, wenn Sie Daten-Payload unabhängig verwenden. Hier ist die link zeigt Ihnen, wie Sie überprüfen, ob Ihre App im Vordergrund oder im Hintergrund ist.
Hier ist Teil Antwort auf Ihre Frage. Wenn Sie die Daten speichern, die, ob Benutzer deaktivieren Benachrichtigung in sharePereference oder Datenbank angeben, müssen Sie den Wert erhalten und es if-Anweisung in Ihrer onMessageReceived()
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if(appIsNotInForeGround){ //you will not want to show a notification if your app is running.
if(!isMuteNotificaition){ // Check wether your user mute the app
sendNotification(); //your custom notification builder.
}
}
}
Referenz setzt in den Link zeige ich Ihnen nur für appIsNotInForeGround
.
Hallo. Wie genau deaktivierst du * Push-Benachrichtigungen in deiner App? Und wie schicken Sie Benachrichtigungen? Bitte geben Sie relevante Code-Snippets und weitere Details für Ihr Szenario an. –