2011-03-13 55 views
2

我在使用C2DM服務測試推送通知時遇到問題。Android C2DM發送問題

我使用Lars'直到「3.4。註冊你的應用程序」的例子來設置我的android測試項目。我成功從設備獲取註冊ID。

然後我成功地使用下面的捲曲得到通過我的服務器的身份驗證令牌:

curl https://www.google.com/accounts/ClientLogin -d Email=theEmailYouWhitelisted -d Passwd=pass****word -d accountType=HOSTED_OR_GOOGLE -d source=Google-cURL-Example -d service=ac2dm 

所以現在我有兩個主要部分來推動。因此,爲了測試目的,我發出另一個curl來發送消息(我將實現身份驗證令牌生成,並在發送消息後,一旦我得到它的功能)。

我用:

curl --header "Authorization: GoogleLogin auth=**authFromRegistrationAbove**" "https://android.apis.google.com/c2dm/send" -d registration_id=**phoneRegistrationId(reciever)** -d "data.message=HelloPush" -d collapse_key=something -k 

響應:

錯誤= NotRegistered

這是我在哪裏,和困惑。我通過我的客戶端服務器,使用我登錄的白名單電子郵件/密碼,併成功接入C2DM程序,成功取得了我的身份驗證令牌。然後編譯Lars的項目來生成我的設備註冊ID,但是一旦它們一起使用,我會得到上面沒有註冊的錯誤,並且沒有推送通知。

想法?評論你是否需要更多信息,我會更新信息。謝謝。

+0

你有 1)購買Android C2DM頁與您的電子郵件 2)試圖註銷和重新登記註冊? – 2011-03-13 04:12:16

+0

@ howa.wong - 是的,我註冊了,並被列入白名單。註銷如何? – bMon 2011-03-13 04:17:59

回答

4

如果你按照我的例子,你應該在RegisterActivity中的文本字段中維護註冊的C2DM用戶(電子郵件地址)。這必須與CURL中的相同。另外請確保您正確複製認證字符串。

2

您是否看到過這個檢查previous questionandroid-c2dm郵件列表上也經常討論這個問題。 NotRegistered這是search

一個常見問題是,您沒有在應用程序上使用與您用於生成身份驗證令牌的ID相同的發件人ID。請注意,在C2DM註冊表格中,您提供了兩個電子郵件地址:一個是在您被接受時通知您,另一個是「角色帳戶」。後者也被稱爲發送者ID,並且是電話應用程序和用於生成身份驗證令牌的帳戶必須使用的。