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中獲取長度的時候,可能做了限制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章