android 友盟推送 無法獲取token -----無法接受到推送訊息---
阿新 • • 發佈:2019-01-28
用著好好的友盟推送服務,突然間接受不到推送訊息。
首先排查了是否獲取到 token。如果獲取不到token,肯定是無法獲取到推送訊息的,因為推送訊息是一句token。增加了列印,發現沒有獲取到token。
然後回退版本,發現是可以獲取token,能收到推送。
接下來,就是對比程式碼,程式碼對比了一天,發現仍然沒有區別。最後就把庫、各種檔案直接使用舊的工程版本,把新程式碼加進去。就可以了。
本來以為,事情就這樣過去了,原因可能就是友盟的庫或者eclipse工程檔案的問題。具體原因不明瞭。但是隨著app的版本升級,這個問題又出現了。
這一次只好再慢慢排查了。採用老方法,然後修改了app的版本號,結果居然不行了。然後把版本號恢復為舊的版本號。又可以接受推送了。這一下,就懷疑是版本號的原因了。
在manifest中做了測試。如下:
android:versionCode="11"
android:versionName="xx商戶版Android1.0.11Build20150211">
首先測試versionCode,這個改大改小,都沒有問題。由於本來字元就比較長,先從一般字串長度 32位來測試。接著測試android:versionName,字元長度修改長短分別測試。
1.長度為 31,可以獲取token
2.長度為32,可以獲取token
3. 長度為33, 獲取不到token。
4. 長度為34, 獲取不到token
現在基本基本可以斷定是由於versionName的長度的原因導致了。
這個長度,在android官方文件中沒有找到定義應該取多長,而且超出32也能編譯通過執行,說明長度不會被限制為32.
那只有一個肯能了,友盟可能在自己的推送sdk中獲取長度的時候,可能做了限制。