在Android上有了新的更新文档GCM,我遵循了这个教程:https://developers.google.com/cloud-messaging/android/client.它工作正常,但有时我会收到一个自动通知,在onMessageReceived(Stringfrom,Bundledata)上记录bundle数据,我得到:Bundle[{breaking_news_payload_extra=CoUGCgJlbhICdWsa+gUKUEplcmVteSBDb3JieW46IE5hdGlvbmFsIGFudGhlbSByb3cgaXMgJ2RlbWVhbmluZyB0aXR0
当我发送带有通知(无数据)负载的gcm消息时,仅当我的应用程序处于后台时才会显示android通知。如果应用程序在前台,则不会显示android通知,但会调用GcmListenerService实现中的onMessageReceived()并使用空“消息”。当应用程序处于后台并且android通知按预期显示时,不会调用onMessageReceived()。这是预期的行为还是我遗漏了什么?如果需要任何客户端代码,请告诉我。这是服务器端的代码fragment:Message.BuildermessageBuilder=newMessage.Builder();messageBuilder
我正在使用GCM在我的应用程序上获取通知。为此,我在登录和注册时生成注册ID。在登录或注册过程后,它会抛出onRecieve方法的空点异常错误。这个错误有时会出现,有时不会出现。这是错误的日志。01-1512:26:02.93522448-22448/com.simplerW/System.err:java.lang.NullPointerException:Attempttoinvokevirtualmethod'voidandroid.content.BroadcastReceiver.onReceive(android.content.Context,android.conten
我正在尝试使用GCM向我的手机发送消息。我收到消息id=0...响应,但我的手机没有显示任何消息。有没有办法检查消息的状态(发送,等待等) 最佳答案 没有。如果您收到message_id=xxxx响应,那么GCM服务器已接受您的请求并将尽快处理它。无论之后发生什么,你都无法控制。无论消息是否传送到目标设备,您都不会收到其他响应。 关于android-检查GCM消息的状态,我们在StackOverflow上找到一个类似的问题: https://stackover
我正在AndroidGCM推送通知上开发应用程序。一切正常。但是当我的设备使用wifi而不是服务提供商的数据计划时,我无法收到通知消息。在我的情况下,数据计划是3G,但通知会像往常一样发送到设备,但是当设备通过wifi连接时,我无法收到任何通知。 最佳答案 这不应该是这种情况,我有一个Android应用程序可以接收GCM推送通知,无论它是通过3G还是Wi-Fi连接。我建议解决此问题:当您从服务器发送推送通知时,请确保不包含delay_while_idle,以便立即发送通知。还要确保您已将time_to_live设置为合理的值(默认为
我正在尝试实现支持GCM的Android应用程序,但我无法从我的第3方服务器向CCS服务器进行身份验证。importsleekxmppasxmppSERVER='gcm.googleapis.com'PORT=5235USERNAME='my-project-number'PASSWORD='my-api-key'defmain():client=xmpp.ClientXMPP(USERNAME+'@'+SERVER,PASSWORD)ifclient.connect(address=(SERVER,PORT),use_ssl=True):print('Connectionestabl
我目前正在尝试了解新的GoogleCloudMessaging是如何工作的,但有些事情对我来说仍然有点模糊。据我了解,下游消息是应用服务器通过GCM云发送的消息。它可以发送给特定的发件人、设备组或主题订阅者。上游消息是发送者通过GCMCCS发送给应用服务器的消息。在这种情况下,它看起来像这样:gcm.send(SENDER_ID+"@gcm.googleapis.com",messageId,data);在官方网站(here)上,它说我们可以在设备上使用上游消息:gcm.send(notificationkey,messageId,data);我不太明白它在那种情况下是如何工作的。一条
我有几个php文件负责存储在我的服务器上的GCM操作,它们似乎在需要时工作得很好,但它们经常返回一个错误,指出:Curlerror:Operationtimedoutafter0millisecondswith0outof0bytesreceived这是服务器的问题还是我的GCM代码的问题?下面是我的php文件:array($registrationIDs),'data'=>array('message'=>$message,'tableID'=>$tableID,'order'=>$order),);$headers=array('Authorization:key='.$apiKe
在我的应用程序中,我需要识别每个安装和用户。目前,我正在使用Settings.Secure.ANDROID_ID、simserial和buildserial的组合生成我的uuid。最近,我一直致力于将谷歌云消息集成到我的应用程序中。现在在我的数据库中,每个安装似乎都有2个ID。使用GCM的tokenID替换我当前的设备ID是个好主意吗?哪个更靠谱?假设每个安装都存在谷歌服务。 最佳答案 我建议不要使用GCMtokentokenID作为应用程序或用户或设备的标识符。主要原因是谷歌不保证给定设备会保持不变。因此,Google甚至有可能在
目前,我正在集成GCM3.0使用InstanceIDAPI进行推送通知的新注册流程。在此之前,我使用GCM2.0register()方法进行推送通知,为此我在Google开发者控制台上创建了项目并创建了ServerAPIkey用于发送推送通知设备所以现在我通过引用此link迁移到GCM3.0.在生成配置文件时,它会询问两件事:选择现有项目或创建项目应用包名通过提供这两个详细信息,它将自动生成新的ServerAPIkey但我已经在这之前创建了APIkey。那么是否需要将旧的APIkey更改为新的APIkey或坚持使用旧的APIkey? 最佳答案