Google Cloud Messaging(GCM)を使用したプッシュ通知に取り組んでいます。 this tutorialに続いて、サーバーとクライアント側を設定できます。ローカルサーバーで動作しているGCMサーバーに接続する
サーバーは、Google API(APIレベル17)でApache Tomcat6.0(localhost)とAndroidエミュレータで動作します。私は送信者IDとAPIキーを持っています。エミュレータから実行すると、正常なデバイス接続メッセージが表示されます。その後、サーバーからメッセージを送信すると、次のエラーが表示されます。
com.google.android.gcm.server.InvalidRequestException: HTTP Status Code: 401()
com.google.android.gcm.server.Sender.sendNoRetry(Sender.java:211)
com.google.android.gcm.server.Sender.send(Sender.java:125)
com.google.android.gcm.demo.server.SendAllMessagesServlet.doPost(SendAllMessagesServlet.java:83)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
他の投稿から、間違ったAPIキーが原因であると私は理解しています。しかし私の場合は、APIコンソールから正しいものを使用していることを確認しました。
ところで、エミュレータを起動すると、「サーバーにregIdを送信しています」というメッセージが表示されました。登録IDとは何ですか?送信者IDと同じではありません。エンコードされたもののように見えます。
突破がありますか?
EDIT
問題が最終的に解決されます! AntはWARファイルを正しく構築していませんでした。 APIキーはほとんど更新されません。バグを発見するのは悪夢の地獄だった。すべての入力に感謝!
エミュレータが動作しません。デバイスで試してください。 –
デバイスAPIレベルの制限はありますか? – Renjith
2.2以上で動作しています。 –