Android 使用GCM进行设备到设备应用程序数据同步

Android 使用GCM进行设备到设备应用程序数据同步,android,google-cloud-messaging,Android,Google Cloud Messaging,我计划构建一个购物清单应用程序,其中一个用户(绑定到智能手机上的一个谷歌账户)的杂货项目可以发送到另一个应用程序用户(绑定到他/她的智能手机上的另一个谷歌账户) 看到GCM,我不确定我们是否可以进行设备到设备的数据同步?任何关于如何快速简便地实现这类功能的想法都将受到高度赞赏。您不一定需要使用GCM或任何消息服务,GCM所要做的就是通知设备您的服务器发生了变化,您需要获取所有新功能 也就是说,你所需要做的只是有一个同步按钮,用户可以手动将列表从服务器同步到设备,反之亦然,这样就不需要GCM了 如

我计划构建一个购物清单应用程序,其中一个用户(绑定到智能手机上的一个谷歌账户)的杂货项目可以发送到另一个应用程序用户(绑定到他/她的智能手机上的另一个谷歌账户)


看到GCM,我不确定我们是否可以进行设备到设备的数据同步?任何关于如何快速简便地实现这类功能的想法都将受到高度赞赏。

您不一定需要使用GCM或任何消息服务,GCM所要做的就是通知设备您的服务器发生了变化,您需要获取所有新功能

也就是说,你所需要做的只是有一个同步按钮,用户可以手动将列表从服务器同步到设备,反之亦然,这样就不需要GCM了


如果您想要自动同步,那么GCM或任何其他消息服务将是您想要的

来详细说明tyczj的答案,您无论如何都需要一台服务器来存储用户的GCM注册ID。因此,您可以使用同一台服务器为他们托管杂货项目

因此,流程如下所示:

  • 用户A希望将杂货清单发送给用户B,他通过服务器的Web服务API以及用户B的google电子邮件地址上传杂货清单
  • 您的服务器有一个GCM注册ID列表,该列表将与其google电子邮件地址相关联。服务器找到用户B的GCM regid,并推送一个带有URL的通知,将杂货清单下载给他
  • 用户B的手机接收到GCM消息,显示通知,允许用户从GCM消息中的URL下载杂货清单

  • 只有当您需要这种“实时”同步列表的方式时,才需要GCM。您也可以省略GCM,在这种情况下,用户B在运行应用程序时只知道用户A与他共享了列表(即每次运行应用程序时,它都会执行“是否有人与我共享列表”命令)。

    但是如何从我的设备(从购物列表应用程序中)获取列表项数据转到服务器,另一台设备(使用我的同一个应用程序,但注册了不同的谷歌id)如何在不使用GCM的情况下获取数据。我对GCM的所有东西都有点陌生,所以如果我问了一些愚蠢的问题,请原谅。您使用web服务调用(HTTP Post或其他)将数据发送到服务器并返回。这真的与GCM无关,GCM所要做的只是提醒你的设备你需要呼叫服务器,因为有更新,而且没有别的。我也在考虑使用Google App Engine插件for Eclipse,因为我不打算将我自己的web/web服务作为服务器组件托管。我只是需要一种方法,让两个预定义的谷歌账户能够相互传输数据(除了蓝牙,因为我不相信我配对的应用程序用户会一直被定位在一起使用蓝牙)是的,google app engine是您存储数据的众多选项之一。非常感谢@azgolfer和tyczj对该主题的清晰阐述。这至少给了我一些信心,去冒险做一些看不见的事情。