我尝试使用来自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 高级主题:
当第 3 方服务器向 GCM 发布消息并收到返回的消息 ID 时,并不意味着该消息已经传送到设备。相反,这意味着它已被接受交付。消息被接受后会发生什么取决于许多因素。在最好的情况下,如果设备连接到 GCM,屏幕处于开启状态,并且没有限制限制(请参阅限制),则消息将立即传递。
我不明白“设备已连接到 GCM ”是什么意思。设备如何连接 GCM、连接互联网并从设备运行应用程序还不够?