附近的消息api: 如何找回图片和视频?

nearby messages api: how to retrieve pictures and videos?

我实际上正在开发一个 android 用于近距离营销的移动应用程序,我的应用程序应该从营销人员那里接收卡片和优惠券并显示收到的项目。

以下代码来自 google 开发人员,它演示了如何使用消息侦听器来解析从 BLE 信标接收到的消息:

mMessageListener = new MessageListener() {
    @Override
    public void onFound(Message message) {
        // Do something with the message here.
        Log.i(TAG, "Message found: " + message);
        Log.i(TAG, "Message string: " + new String(message.getContent()));
        Log.i(TAG, "Message namespaced type: " + message.getNamespace() +
                "/" + message.getType());
    }

    ...
};

我的问题是:

在上面的代码中,解析的消息是一个字符串,所以我认为处理起来很简单,在我的情况下,我必须接收卡片和优惠券,所以图片..我如何处理和解析接收到的图片?

Beacon attachments with the Nearby APIs are limited to 1024 bytes 的任意数据,通常经过 Base64 编码以存储为字符串。虽然理论上您可以拍摄二进制图像,对其进行 Base64 编码,并将它们存储为附件,但图像必须为 1024 字节或更小(不计算 Base64 编码开销)。底线:附件无法传输大图。

一个典型的替代方法是将您的图像放在 public URL 的 Web 服务器上,并将 URL 存储在附件中。然后,您在上面的 onFound() 方法中编写代码以启动后台线程以使用 HTTP 客户端获取图像。一旦这个returns,就可以显示图像了。可以看到an example of fetching an image here.

当然,这需要网络访问才能正常工作,但是 Nearby API 确实需要网络访问,无论如何,否则无法从 [=23] 获取附件=]的云服务器。