2011-11-22 103 views
0

我最近一直在使用三星Galaxy Tab 10.1上的C2DM「運行股票Honeycomb。我最終獲得了設備註冊,並且我的服務器發送了推送消息,但是,當我嘗試在Motorola Xoom上運行完全相同的代碼時運行Stock Honeycomb),兩臺索尼平板電腦(運行Stock Honeycomb)和一部電話(運行CM7.1)都不工作。只有三星工作有誰知道爲什麼有些設備不會收到推送通知?

我在我的BroadcastReceiver類的onRecieve()打印聲明,這每獲得打印每一個設備的註冊每一個設備它只能再次打印(當我發送一個推送消息)在三星平板電腦上。有誰知道爲什麼會發生這種情況?

我會發布一些代碼,但我真的不知道我的代碼發佈哪一部分。我甚至不知道它是服務器端還是客戶端。不過,我儘可能地嘗試遵循Google Doc。

回答

1

確保每個設備都已正確註冊,並且在向POST發送POST請求時傳入正確的設備ID。此外,這些設備需要登錄Google帳戶。請檢查此處的所有要求:http://code.google.com/android/c2dm/

另外,如果設備已經註冊,請不要再註冊一次。一旦它被註冊,在onReceive確認它,如果它是,然後嘗試發送一個實際推送與有效載荷。

+0

我已經完成了文檔中的所有要求,我一遍又一遍地複製並粘貼了註冊設備ID。我已經三次檢查了我註冊設備的電子郵件地址,並確保他們通過在後臺運行gmail和市場來登錄。感謝您的回覆,雖然 – NotACleverMan

+0

我已經解決了這個問題。我認爲用於註冊的「senderEmailAddress」是想要註冊的設備的電子郵件,而不是將要發送消息的服務的電子郵件地址。我改變了它,它工作得很好。它在你鏈接的文檔中,所以我接受了它。謝謝。 – NotACleverMan

+1

@NotACleverMan啊是的!發件人是你!很高興你有它的工作。 – LuxuryMode