我创建了一个可以接收推送通知的Android应用。我已经在两部不同的手机上安装了该应用程序,并确认两者都可以接收GCM推送通知。该测试在美国完成。
接下来的一周,其中一部电话前往亚洲。但是在亚洲的手机上无法收到推送通知。它有互联网访问权限,但无法接收推送通知。
有谁知道为什么?是否需要特殊配置。网络可以阻止GCM消息吗?
答案 0 :(得分:2)
必须被国家阻止。例如谷歌在中国受阻。
其他Google服务是否适用于该设备。
答案 1 :(得分:0)
如果您在亚洲手机中尝试过应用程序,那么它会起作用。或者您可以根据国家/地区更改IMEI号来更改您的位置。
答案 2 :(得分:0)
在发展中国家,某些电信网络/家庭路由器将积极断开空闲的TCP连接以节省资源,从而阻止您的GCM / FCM通知按时到达。
FCM使用心跳机制通过每隔X分钟向FCM服务器发送一个“ keepalive”数据包来保持其连接有效。但是,FCM使用的心跳间隔并未考虑到发展中国家会终止空闲连接的攻击性网络。
这使得GCM / FCM在这样的发展中地区非常不可靠: https://eladnava.com/google-cloud-messaging-extremely-unreliable/
根据中国的规定,GCM / FCM被中国的防火墙完全阻止。
作为一种解决方法,请检出Pushy,它使用经过微调的MQTT连接以及更快的心跳间隔来防止连接被终止,并且在中国不被阻止。
全面披露-我创立了Pushy。
答案 3 :(得分:-1)
Google Cloud Message基于Google Play服务。 请检查此设备是否已有Google Play服务