我正在使用Google Cloud Messaging通知使用推送通知的Android應用程序的項目。我已經在PHP中實現了應用程序服務器。當我運行Android應用程序時,設備從GCM服務器獲取註冊ID,並將註冊ID發送到PHP服務器(應用程序服務器)。但我從服務器得到以下httpresponse:Gcm沒有被Recuried
{
"multicast_id": 7015234441922271670,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [{
"message_id": "0:1344007383866721%2adac3a0ad8b3148"
}]
}
但郵件沒有傳遞到設備。任何建議請。
如果任何人有上述問題,請檢查下面它可以幫助你
最後我已經找到解決方案在服務器端,只要應用程序表現很好,一切都應該正常工作。但是,如果應用程序中的某個錯誤會觸發同一設備的多個註冊,則可能很難調和狀態,並且最終可能會出現重複的消息。
GCM提供了一種稱爲「規範註冊ID」的功能,可以輕鬆從這些情況中恢復。規範註冊ID被定義爲您的應用程序請求的最後一次註冊的ID。這是服務器在向設備發送消息時應使用的ID。
如果稍後嘗試使用不同的註冊ID發送消息,GCM將像往常一樣處理請求,但它將在響應的registration_id字段中包含規範註冊ID。請確保使用此規範ID替換存儲在您的服務器中的註冊ID,因爲您最終使用的ID將停止工作。
看到我的答案這可能是有用的http://stackoverflow.com/questions/14017176/i-cant-open-a-dialog-from-gcm-onmessage-in-android/14017645#14017645 –
從[gcm指南](http://developer.android.com/google/gcm/gcm.html)注意:「如果您的組織具有防火牆來限制流量進出Internet,則需要將其配置爲允許與GCM連接要求你的Android設備接收消息,要打開的端口是:5228,5229和5230.GCM通常只使用5228,但它有時使用5229和5230.GCM不提供特定的IP,所以你應該允許你的防火牆接受來自Google的ASN 15169中列出的IP塊中包含的所有IP地址的傳入連接。「檢查你的防火牆。 – AlexBcn
在它工作之前,但現在它不工作我怎麼能在上面做? – Prabu