Tôi đang làm việc với các thông báo đẩy với Google Cloud Messaging (GCM). Tôi có thể thiết lập máy chủ và phía máy khách sau this tutorial.Kết nối với máy chủ GCM đang chạy trên máy chủ cục bộ
Máy chủ chạy trên Apache Tomcat6.0 (máy chủ cục bộ) và trình giả lập Android trên API Google (API cấp 17). Tôi có một id người gửi và khóa API. Khi chạy từ trình mô phỏng, tôi nhận được thông báo kết nối thiết bị thành công. Sớm hơn sau đó, khi gửi tin nhắn từ máy chủ cho thấy lỗi sau.
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)
Từ các bài đăng khác, tôi hiểu sai Khóa API là thủ phạm. Nhưng trong trường hợp của tôi, tôi đảm bảo rằng tôi đang sử dụng đúng từ bảng điều khiển API.
Nhân tiện, khi tôi chạy trình mô phỏng, tôi thấy một thông báo 'gửi regId đến máy chủ'. ID đăng ký là gì? Nó không giống như id người gửi; trông giống như mã được mã hóa.
Bất kỳ đột phá nào?
EDIT
Vấn đề cuối cùng được giải quyết! Ant không xây dựng đúng tệp WAR. Vì vậy, khóa API hầu như không được cập nhật. Đó là một cơn ác mộng để phát hiện lỗi. Cảm ơn tất cả các đầu vào!
Trình giả lập không hoạt động.Hãy thử với thiết bị –
bất kỳ hạn chế nào về mức API của thiết bị ..? – Renjith
Hoạt động trên 2,2 –