我尝试使用http://developer.android.com/guide/google/gcm/gs.html
中的Google Cloud Messaging实施应用程序Sender sender = new Sender(myApiKey);
Message message = new Message.Builder()
.collapseKey("1")
.timeToLive(3)
.delayWhileIdle(true)
.addData("message", "message is created at builder")
.build();
Result result = sender.send(message, reGid, 5);
System.out.println("result of message is "+result);
因此我得到一个消息ID,可以从控制台看到;但我想在我的设备上用祝酒词显示消息。
GCMIntentService.java:
@Override
protected void onMessage(Context arg0, Intent arg1) {
Log.i(TAG, "new message= ");
Toast.makeText(this, arg1.getStringExtra("message"), Toast.LENGTH_SHORT)
.show();
}
来自GCM高级主题:
当第三方服务器向GCM发布消息并收回消息ID时,并不意味着消息已经传递给设备。相反,它意味着它被接受交付。消息被接受后会发生什么取决于许多因素。 在最佳情况下,如果设备已连接到GCM ,屏幕已打开,并且没有限制限制(请参阅限制),消息将立即发送。
我无法理解“设备连接到GCM ”的含义。 设备如何连接GCM,连接互联网和从设备运行应用程序是不够的?
答案 0 :(得分:2)
连接到GCM取决于一些事项。
GCMRegistrar.register
<强>更新强> 当您发送消息时,您会收到状态响应,如果一切正常,则表示消息ID。发送消息的设备将不会收到消息,除非消息已发送到该设备(使用已注册的GCM ID设备)。设备注册ID在设备调用后返回。
请注意,使用GCM无法保证邮件将被传递。它通常非常可靠,但如果交付很关键,则不应使用。
是onMessage()是设备收到新消息的入口点。
答案 1 :(得分:2)
您应该点击此链接获取所有问题的答案:
您只需要实现客户端和服务器。我已经在我自己的PC上实现并运行了代码。
我已经在PC上测试了移动设备。
源代码可用。您只需下载并按照一些简单的步骤操作。
我打赌你会在30分钟内运行你的代码。
乐意帮助!!