Pracuję nad powiadomieniami push za pomocą Google Cloud Messaging (GCM). Mogę skonfigurować stronę serwera i klienta po this tutorial.Łączenie się z serwerem GCM działającym na lokalnym serwerze
Serwer działa na serwerze Apache Tomcat6.0 (localhost) i emulatorze systemu Android w interfejsach API Google (poziom interfejsu API 17). Mam identyfikator nadawcy i klucz API. Po uruchomieniu z emulatora otrzymuję komunikat o pomyślnym połączeniu urządzenia. Wcześniej po wysłaniu wiadomości z serwera pojawi się następujący błąd.
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)
Z innych postów rozumiem, że błędny klucz API jest winowajcą. Ale w moim przypadku upewniłem się, że używam właściwego z konsoli API.
Nawiasem mówiąc, po uruchomieniu emulatora zobaczyłem komunikat "wysyłanie wiadomości do serwera". Jaki jest identyfikator rejestracji? To nie jest to samo, co identyfikator nadawcy; wygląda jak zakodowany.
Jakieś przebicie?
EDIT
Kwestia jest ostatecznie rozwiązany! Ant nie poprawnie zbudował plik WAR. Więc klucz API prawie się nie aktualizuje. To był koszmarny koszmar, by dostrzec błąd. Dziękuję wszystkim za wkład!
Emulator nie działa. Spróbuj z urządzeniem –
jakiekolwiek ograniczenie poziomów urządzeń API ..? – Renjith
Działa powyżej 2.2 –