Android Wear:如何使用MessageApi 发送多个项目?
Android Wear: How to send multiple items with MessageApi?
所以我想使用 MessageApi 而不是 DataApi 将多个项目发送到可穿戴设备。但是 MessageApi 的 sendMessage() 只允许发送一个字节数组。
供参考:
Wearable.MessageApi.sendMessage(mGoogleApiClient,
String id,
String path,
byte[] bytes)
我的猜测是创建一个字节数组数组,然后将其序列化为一个大字节数组并将其发送出去。
为了使事情更清楚,这些是伪代码中的步骤:
byte[][] arrayOfByteArrays;
String a --> convert to byte[];
Bitmap b --> convert to byte[];
Add a and b byte[]'s to arrayOfByteArrays;
Serialize arrayOfByteArrays to just a byte[] and send it off;
这是正确的做法吗?或者我应该多次调用 sendMessage()
吗?谢谢
一般来说,发送一条消息比发送多条消息更有效率(电池、带宽...)。但是,您的具体情况可能涉及其他因素,可能需要发送多条消息。查看您的伪代码,我注意到您还尝试使用 MessageApi 发送位图。一般来说,这不是发送图像或其他类型资产的最佳方法;你可以使用 Assets or you can use ChannelApi。否则,序列化一堆小对象并将它们放入一个字节数组然后在另一端反序列化的方法是可行的;一种简单的方法(如果处理简单对象)是使用 json 作为序列化手段。
所以我想使用 MessageApi 而不是 DataApi 将多个项目发送到可穿戴设备。但是 MessageApi 的 sendMessage() 只允许发送一个字节数组。
供参考:
Wearable.MessageApi.sendMessage(mGoogleApiClient,
String id,
String path,
byte[] bytes)
我的猜测是创建一个字节数组数组,然后将其序列化为一个大字节数组并将其发送出去。
为了使事情更清楚,这些是伪代码中的步骤:
byte[][] arrayOfByteArrays;
String a --> convert to byte[];
Bitmap b --> convert to byte[];
Add a and b byte[]'s to arrayOfByteArrays;
Serialize arrayOfByteArrays to just a byte[] and send it off;
这是正确的做法吗?或者我应该多次调用 sendMessage()
吗?谢谢
一般来说,发送一条消息比发送多条消息更有效率(电池、带宽...)。但是,您的具体情况可能涉及其他因素,可能需要发送多条消息。查看您的伪代码,我注意到您还尝试使用 MessageApi 发送位图。一般来说,这不是发送图像或其他类型资产的最佳方法;你可以使用 Assets or you can use ChannelApi。否则,序列化一堆小对象并将它们放入一个字节数组然后在另一端反序列化的方法是可行的;一种简单的方法(如果处理简单对象)是使用 json 作为序列化手段。