1. 程式人生 > >關於極光推送,部分手機收不到的分析

關於極光推送,部分手機收不到的分析

最近查看了一下極光後臺,發現有很多安卓手機訊息傳送成功

但是送達失敗,索性去看了鐳射文件以及社群

Android

  1. 「為什麼應用程式無法收到 Push 訊息(Android)?」
    • 確認 appKey(在Portal上生成的)已經正確的寫入 Androidmanifest.xml
    • 確認測試手機(或者模擬器)已成功連入網路(可以切換網路來判斷是否該網路運營商有問題)
    • 確認有客戶端 "Login succeed" 日誌(表示整合成功)
    • 請檢查收不到通知的手機:
    • 請 在logcat檢視日誌,確定客戶端的jpush是否整合成功,網路是否有問題
    • 請看日誌或使用介面 isPushStopped來檢查 是否呼叫了stoppush
    • 檢查手機的JPush高階設定中是否設定了“允許推送時間”
    • 手機的應用中是否勾選了“顯示通知”
  2. 「Android是不是要求後臺程序不能關,才能收到推送?」
    「Android處於後臺/黑屏狀態下收不到推送」

    • 請自行確認收不到的時候長連線是不是已經斷開,Android是長連線的機制,必須app和極光伺服器建立了連線才能收到推送;斷網、關機、程序不在、主動呼叫了stopPush服務等,長連線都會斷開,都沒法收推送。
    • 極光的sdk會有自啟動機制,也支援程序間互相拉起功能,但是會受到系統本身的限制
  3. 「Android 中極光推送後臺服務被殺死後不能自動重啟」

    • android原生系統,沒有 root,用 home 鍵上滑殺程序等其他系統自帶的停止方式,都可以自啟動,一般10s內恢復。但如果是強行停止就只能使用者自己手動開啟應用
    • 如果是miui等第三方應用,殺了程序預設無法自啟動
    • 如果是root過的原生系統,殺了程序也是沒有辦法自啟動的,這個時候推送是收不到的
    1. 「為什麼微信或者 QQ 等應用看似可以保證不被殺死或者殺死後可以收到訊息」

      • 如果將他們完全徹底的殺死,也是收不到的,這是肯定的
      • 只是:他們很難被殺死,即便殺死後也會以較快的速度重啟:我們(使用者)會下意識的在手機裡開啟對他們的保護;他們是不少手機系統的自帶軟體。