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