Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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
如何通过GCM服务器将XML文件从服务器推送到android应用程序_Android_Xml_Xml Parsing_Push - Fatal编程技术网

如何通过GCM服务器将XML文件从服务器推送到android应用程序

如何通过GCM服务器将XML文件从服务器推送到android应用程序,android,xml,xml-parsing,push,Android,Xml,Xml Parsing,Push,我正在尝试基于GCM的android应用程序将消息从服务器推送到android客户端。我能够使用以下coe推送修复字符串。我想知道如何从服务器推送XML文件并在android应用程序中解析。我做了一些研究,但没有找到推送XML,而是找到了发送XML文件。多谢各位 if (androidArray.size() == 1) { String registrationId = androidArray.get(0); Message message = new Message.Bu

我正在尝试基于GCM的android应用程序将消息从服务器推送到android客户端。我能够使用以下coe推送修复字符串。我想知道如何从服务器推送XML文件并在android应用程序中解析。我做了一些研究,但没有找到推送XML,而是找到了发送XML文件。多谢各位

if (androidArray.size() == 1) {

    String registrationId = androidArray.get(0);
    Message message = new Message.Builder()
    .collapseKey(collapseKey)
    .timeToLive(30)
    .delayWhileIdle(true)
    .addData("message", Message)
    .build();

    Result result = sender.send(message, registrationId, 5); 
您不会将xml(或者最好是JSON)推送到android应用程序。您可以向应用程序发送一条简单的消息。 当应用程序接收到消息时,它需要去从网站上通过http get请求将xml/json拉到将提供xml的相关url。 然后,android应用程序可以解析响应并执行您希望它执行的任何操作

这是一篇关于C2DM(GCM的先驱)的优秀教程 你应该能够计算出所需的差异

更新

谷歌Android有一个完整的GCM部分,可以在这里找到

在该链接中有入门指南和GCM演示应用程序

你可以发送的数据量是有限制的,你不应该依赖你的数据,因为你的数据永远不会超过限制,或者谷歌任意改变你可以发送的数据量

如果出现上述任何一种情况,你都需要更新你的应用程序,所以首先要正确地操作

您发送的消息应充当“键”,以确定收到消息时要采取的操作

更新


如果你真的很喜欢冒险,你可以使用一个定制的同步适配器来帮助你使用你的web服务。这是非常高级的东西,但如果你对此感到好奇,那么就观看关于使用RESTfull web服务的Google I/O研讨会吧

嘿,伙计们!非常感谢你的帮助!非常感谢您的回复。所以你是说所有的事情都可以通过android应用程序来完成,对吗?我想知道推送消息包含什么?为什么不像字符串消息一样推送XML文件呢?“你不能将XML(或者最好是JSON)推送到android应用程序。”-从技术上讲,只要有效负载不超过4KB,就没有理由不能将XML数据推送到应用程序。这样做效率会更高,因为应用程序不需要对少量数据发出HTTP GET请求。@Tseringyangsom通过该链接访问C2DM,所有内容都会变得清晰:)不过我会更清晰地更新我的答案。@jamesw:同意,谷歌可以改变数据有效载荷的允许大小,但如果他们打算这样做,为什么他们会将C2DM允许的1KB有效载荷增加到GCM允许的4KB?假设有效负载只有128字节(例如,对于带有URI的简单通知来说足够了),如果他们将其减少到64字节会怎么样?例如,如果我的通知经常使用70或80字节,它仍可能破坏我的应用程序。数据量小到足以阻止谷歌破坏应用程序开发者的东西吗?@Squonk这将是一件痛苦的事情,但他们做了更愚蠢的事情,关键是作为开发者,我们绝对无法控制。因此,尽可能消除这个问题。如果他们将限制提高到100MB,并引入每月对超过一定有效负载量的任何内容收费,会怎么样。这可能会让你付出代价。他们可以而且可能会再次改变事情,我们不知道这会产生什么影响,也不知道他们会改变什么。这是一个由来已久的问题:我是使用库还是编写自己的代码?如果使用库,请尽最大努力将更改可能产生的任何影响降至最低