Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android设备上实现推送服务_Android_Push Notification_Google Cloud Messaging - Fatal编程技术网

在Android设备上实现推送服务

在Android设备上实现推送服务,android,push-notification,google-cloud-messaging,Android,Push Notification,Google Cloud Messaging,首先,我了解GCM服务,对此我也有疑问 如果我想实现推送服务,这是正确的方法吗;服务器等待连接,Android客户端连接服务器并一直等待数据。所以服务器可以随时发送数据。连接始终打开,并显示保持活动状态的消息 关于GCM GCM是否使用这种逻辑 GCM是否可以在所有Android设备上运行?我的意思是,如果一台设备使用安卓操作系统,它是否也支持谷歌服务 如果GCM在Android上不是一项有保证的服务,我应该如何处理设备上不支持GCM的情况。或者这是一个微不足道的例子 GCM是否使用这种逻辑

首先,我了解GCM服务,对此我也有疑问

如果我想实现推送服务,这是正确的方法吗;服务器等待连接,Android客户端连接服务器并一直等待数据。所以服务器可以随时发送数据。连接始终打开,并显示保持活动状态的消息

关于GCM

  • GCM是否使用这种逻辑
  • GCM是否可以在所有Android设备上运行?我的意思是,如果一台设备使用安卓操作系统,它是否也支持谷歌服务
  • 如果GCM在Android上不是一项有保证的服务,我应该如何处理设备上不支持GCM的情况。或者这是一个微不足道的例子
GCM是否使用这种逻辑

一般来说是的,不过要记住还有很多细节

如果设备使用安卓操作系统,是否保证它也支持谷歌服务

不会。它只会出现在合法拥有Play Store和谷歌专有应用套件的其他设备上。它不会出现在KindleFire、OUYA或其他纯粹使用开源项目Android的设备上

我应该如何处理设备上没有GCM支持的情况

亚马逊的KindleFire系列IIRC有一个GCM等价物

除此之外,由于GCM并不是一项有保证的交付服务,即使是“普通”Android设备,您也需要一个后备计划


例如,假设您正在编写一个向用户显示新闻标题的应用程序。在没有任何推送通知的情况下,您每四小时轮询一次新标题,或者当用户按下UI中的“刷新”按钮时。有了GCM,你的服务器可以在标题到达时按下标题,而你的应用程序可以接收到这些标题。这为“普通”设备上的用户提供了更新鲜的数据,但仍然涵盖了丢失某些GCM消息或不支持GCM的设备的情况。

除了Commonware提到的GCM之外,您可能希望将MQTT视为另一种发布/订阅机制;它可以在任何可以运行Java的设备上工作。是一个我试图解释它是如何工作的链接

这种链接适用于局域网消息传递,但也适用于互联网。这是Facebook聊天应用程序使用的机制。在该链接上,您将找到指向git的另一个链接,我在其中显示了在一个简单的家庭自动化项目中使用的MQTT。如果你有任何问题,我可以试着回答