您有兩個選項可以為 Android 上的下游消息分配傳遞優先級:正常優先級和高優先級。正常和高優先級消息的傳遞是這樣的:
正常優先級。這是數據消息的默認優先級。當設備未處於休眠狀態時,會立即傳送正常優先級的消息。當設備處於打瞌睡模式時,可能會延遲交付以節省電池電量,直到設備退出打盹模式。對於時間敏感度較低的消息,例如新電子郵件通知、保持 UI 同步或在後台同步應用程序數據,請選擇正常傳遞優先級。
當在 Android 上收到請求為您的應用程序進行後台數據同步的普通優先級消息時,您可以使用WorkManager安排任務以在網絡可用時處理它。
高優先級。 FCM 嘗試立即傳遞高優先級消息,允許 FCM 在必要時喚醒睡眠設備並運行一些有限的處理(包括非常有限的網絡訪問)。高優先級消息通常會導致用戶與您的應用或其通知進行交互。
使用 Android 的高優先級消息
Android 上的高優先級消息適用於時間敏感、用戶可見的內容,並且應該導致面向用戶的通知。如果 FCM 檢測到消息不會導致面向用戶的通知的模式,則您的消息的優先級可能會降低到正常優先級。 FCM 在確定是否取消消息優先級時使用 7 天的消息行為;它為您的應用程序的每個實例獨立做出此決定。如果為了響應高優先級消息,通知以用戶可見的方式顯示,那麼您以後的高優先級消息將不會被取消優先級。無論通知是由 FCM SDK 通過通知消息顯示的,還是開發人員生成的通知通過數據消息顯示的,這都適用。
在 Android 上測量消息的優先級降低
個人消息。在傳遞時,您可以通過比較來自getPriority() 的傳遞優先級與其來自getOriginalPriority()的原始優先級來確定單個消息是否被取消優先級
所有消息。 FCM Aggregate Delivery Data API可以報告發送給 Android 的所有消息中有多少百分比被取消了優先級。聚合數據報告中可能會省略一些消息,但總體而言,它們應該給出消息優先級降低率的全局視圖。有關更多信息和查詢 API 的示例代碼,請參閱我們關於聚合交付數據的文章;也可以從API 資源管理器中探索它。
故障排除
確保您的應用程序實例已啟用通知。如果用戶禁用了您應用的通知權限,則您的任何通知都不會發布,因此您的消息將被取消優先級。在將高優先級消息發送到應用程序實例之前,您應該驗證通知是否已啟用。
在發布通知之前不要打電話回家。由於一小部分 Android 移動用戶使用高延遲網絡,因此請避免在顯示通知之前打開與服務器的連接。在允許的處理時間結束之前回調到服務器對於高延遲網絡上的用戶來說可能是有風險的。相反,將通知內容包含在 FCM 消息中並立即顯示。如果您需要在 Android 上同步其他應用內內容,您可以使用WorkManager安排任務在後台處理。