1. 程式人生 > >android 友盟推送 無法獲取token -----無法接受到推送訊息---

android 友盟推送 無法獲取token -----無法接受到推送訊息---

用著好好的友盟推送服務,突然間接受不到推送訊息。

首先排查了是否獲取到 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中獲取長度的時候,可能做了限制。