GCM发送图片而不是消息

6
我是一名 Android 新手,正在使用 Google GCM 发送纯文本消息。是否可以通过流或其他方法发送图像文件?

Java - 服务器端

Android - 客户端。

    Message message = new Message.Builder()
                .collapseKey("1")
                .timeToLive(3)
                .delayWhileIdle(true)
                .addData("TEST",
                        "Hello Android")
                .build();

这里的简单消息是.addData("TEST","Hello Android")
4个回答

16

您只能发送总大小不超过4096字节的键/值对。 即使您成功将图像编码为字符串参数,它也将是一个微小的图像。 另一种选择是发送一个指向图像位置的字符串,可以是设备上的本地文件名,也可以是您可以访问以下载图像的URL,当您处理通知时。


5

第二个链接似乎已经失效了。 - secureboot
1
以下是更新的链接:BigPictureStyle: http://blog.andromo.com/2012/tutorial-using-airbop-to-push-images-for-bigpicturestyle-notifications/ 和 Images in Payload: http://blog.andromo.com/2012/tutorial-using-airbop-to-send-images-in-the-message-payload/ 希望能对您有所帮助! - selsine

2

由于数据负载被限制在4kB,因此您只能发送非常小的图像。您还需要以某种方式对其进行编码。


1

好的,让我们考虑更大的局面。正如每个人所说的那样,使用gcm发送图片非常困难或不可能,除非您有一张小图片。另一种技术是分部分发送,但是这很麻烦,没有人想编写所有代码。我的建议是编写服务器以存储传递密钥和图像凭据,可以将其发送到设备。然后,设备使用凭据查询服务器以获取图像下载。这种技术类似于使用推送通知设备服务器上有新数据可用的理论。最初它被用来制作尽可能少使用push的服务器,但在这种情况下,它被用作发送大数据的占位符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接