2016-06-17 28 views
0

我正在使用FCM向Android發送推送通知。僅當發送「數據」參數時將通知分組

如果我發送通知notification payload那麼他們沒有得到分組。 如果我在通知中只使用data,我該如何區分它們? 例子:

{ 
    "to":"eNu-qhBtQdI:APA91bFewNZjgMNep6wqsrECDLXMcaPsBMIFktGl77d4l5cWIiqebN6aDs-tO2wHm0K82Qoayzlt3LQ0VtXm12CAhk8wNMyJX8fc0I1XAIdqp3zOa0o6hwYpnYwdOAeGXEhYVCw3sERJ", 
    "data":{ 
     "body":"great match", 
     "title":"Portugal vs. Denmark", 
     "sound":"default", 
    } 
} 
+0

你能說清楚你的意思嗎?您的意思是發送郵件的請求是分組的,還是您的意思是設備上顯示的通知正在分組? –

回答

0

如果您手動構建在應用程式onMessageReceived處理程序的通知,並使用相同的ID爲每個通知,他們將取代海誓山盟。爲NotificationManager.notify()

文檔:

發佈一個通知在狀態欄顯示。如果具有相同標籤和ID的通知已由您的應用程序發佈並且尚未取消,則會被更新的信息替換。

因此,如果您希望他們成爲而不是,您需要在構建通知時使用不同的ID。當你的應用程序在後臺

0
  • 通知投遞。 - 在此 的情況下,通知將傳遞到設備的系統托盤。 A 默認情況下,用戶點擊通知將打開應用程序啓動器。
  • 帶有通知和數據有效負載的消息。在這種情況下, 通知將傳送到設備的系統托盤,並且數據將以您的啓動程序 活動的附加內容傳送。

Firebase downstream messages.

他們沒有得到分組。

由於從Firebase控制檯發送的推送消息是通知,無論如何,您都無法發送數據有效負載,因此無法從控制檯發送數據有效負載,這是控制檯的侷限性。 因此,如果您要從控制檯發送通知,則會將其傳送到設備的系統托盤,其中操作系統正在爲您生成通知,並且每個通知ID都不相同。

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
// NOTE: mId should be different for every push if you don't want them to group, something like a mId = new Random().nextInt(9999) may work 
mNotificationManager.notify(mId, mBuilder.build()); 

在你不知道的情況下,從火力推送消息被分爲兩個部分:

數據有效載荷的情況下

但是,你正在使用像這樣的代碼創建自己的通知ID - 通知和數據有效載荷。 Read More.

相關問題