android - 附近的消息 api : how to retrieve pictures and videos?

标签 android bluetooth-lowenergy uid eddystone google-nearby

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

以下代码来自谷歌开发人员,它演示了使用消息监听器来解析从 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 上,并将该 URL 存储在附件中。然后,您在上面的 onFound() 方法中编写代码以启动后台线程以使用 HTTP 客户端获取图像。返回后,您可以显示图像。可以看到an example of fetching an image here.

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

关于android - 附近的消息 api : how to retrieve pictures and videos?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37375172/

相关文章:

android - 下载管理器可以将文件保存在 android 的内部存储中吗?

android - BleGattException 状态返回 133 (onClientConnectionState() - status=133)

安卓蓝牙 LE SCAN_FAILED_OUT_OF_HARDWARE_RESOURCES

android - 蓝牙设备未在 android oreo 中列出

windows - 在 ms windows 中获取 userid 用于 uid 和 gid 映射

android - Android应用卸载重装后用户id有变化吗?

android - 如何使按钮居中并且其宽度是容器的百分比?

java.lang.ClassNotFoundException : Didn't find class on path: dexpathlist

linux - 在 Linux 中更改用户 ID

android - 计算Android屏幕尺寸