Firebase コンソールを使用してユーザーに通知を送信しています。ただし、ユーザーが通知を無効にできるようにしたいと考えています。それらを無効にするにはどうすればよいですか?
アプリがフォアグラウンドにある場合にのみ、FirebaseMessagingService を介して通知を処理 (および停止) できます。しかし、アプリがバックグラウンドになっていると通知を止めることができません。
Firebase コンソールを使用してユーザーに通知を送信しています。ただし、ユーザーが通知を無効にできるようにしたいと考えています。それらを無効にするにはどうすればよいですか?
アプリがフォアグラウンドにある場合にのみ、FirebaseMessagingService を介して通知を処理 (および停止) できます。しかし、アプリがバックグラウンドになっていると通知を止めることができません。
なぜこれが起こるのかはわかりませんが (コード スニペットでしょうか?)、重い究極の解決策があります: マニフェストで独自の c2dm レシーバーを定義し、優先度を高く (>0) 設定してから、通知の処理を停止します。
GCM メッセージは順序付きブロードキャストとして処理されるため、次のメソッドを呼び出して処理チェーンを停止できます。
https://developer.android.com/reference/android/content/BroadcastReceiver.html#abortBroadcast()
レシーバーで何もしない場合、次のレシーバーが処理を行います。これが Firebase レシーバーになります。
注意: Firebase は、Remote Config の変更に関するプッシュ通知を送信しています。そのため、Remote Config を使用する場合、データ プッシュを抑制することはお勧めできません。
私は同じ質問に会います。subscribeToTopic API を使用して通知をサブスクライブします。
FirebaseMessaging.getInstance().subscribeToTopic("APP");
そして、他の API unsubscribeFromTopicが購読を解除することを見つけました。
FirebaseMessaging.getInstance().unsubscribeFromTopic("APP");
トピック通知を使用する APP に役立つかもしれません。フォアグラウンドとバックグラウンドで通知を受け取りません。