Android-强制获取新的gcm消息

Android-强制获取新的gcm消息,android,titanium,google-cloud-messaging,Android,Titanium,Google Cloud Messaging,我目前正在开发一个Tianium应用程序,它使用gcm.js模块来处理gcm消息。但GCM在消息传递方面似乎真的有问题。如果收到消息,我经常会延迟几个小时收到消息 我知道GCM试图节约能源。但奇怪的是,当手机通过USB连接到我的电脑,而我正在调试应用程序时,GCM是最不可靠的。在我看来,在这种情况下,GCM根本不应该试图节约能源!当手机当前正在充电时,通知应立即到达 我尝试发送TTL值为0-10的消息,以利用now或never效应,但这只会导致从未收到任何消息 所以,我需要的是一种手动强制我的a

我目前正在开发一个Tianium应用程序,它使用gcm.js模块来处理gcm消息。但GCM在消息传递方面似乎真的有问题。如果收到消息,我经常会延迟几个小时收到消息

我知道GCM试图节约能源。但奇怪的是,当手机通过USB连接到我的电脑,而我正在调试应用程序时,GCM是最不可靠的。在我看来,在这种情况下,GCM根本不应该试图节约能源!当手机当前正在充电时,通知应立即到达

我尝试发送TTL值为0-10的消息,以利用now或never效应,但这只会导致从未收到任何消息

所以,我需要的是一种手动强制我的android手机获取新的GCM消息的方法,这样我就可以调试收到消息时发生的事情。我没有时间等几个小时直到手机收到信息

有办法做到这一点吗


是的,我试过好几款手机,包括Nexus5、GalaxyNexus和一些htc设备。到处都是一样的:/

您可以尝试这样做,只是为了调试: 1确保在空闲标志设置为false时延迟,不会建议在最终产品中将其保持为false。 2保持TTL不变。 3将消息与有效负载一起使用请记住限制为4 kb。您可以通过删除“折叠”键参数来设置此参数。 4现在在接收器中执行

我在这里的逻辑是,你发送一条具有适当有效载荷的消息,因为它只会存活10秒,所以它会崩溃。一旦折叠,您可以通过消息_type _deleted获取该消息。同步应用程序以获取

附言:我怀疑这将是一个稳定的技术,但它将服务于最有可能的目的


希望能有帮助

你有没有想过,问题出在Tianium/Javascript上,而不是GCM有问题?@Squonk这当然是可能的,但我怀疑,因为接收部分是用Java编写的,我认为它没有收到通知。我还尝试了另一个gcm模块,它有一个完全不同的用于获取gcm通知的代码库,它也可以工作,但具有相同的延迟和不可靠性,这就是我切换到gcm.js的原因。因此,我真的怀疑gcm模块是否存在问题。这是整个gcm系统。