我有一个可以自定义项目的ArrayList:
ArrayList<AudioLog> audioLogs = getAudioLogs();
我想使用MessageAPI从手表发送到手机:
Wearable.MessageApi.sendMessage(googleClient, node.getId(), path, audioLogs).await();
但是,我需要将整个ArrayList及其内容转换为byte [],因为sendMessage方法需要 - (GoogleClient客户端,int id,String path,byte []消息)。
为了转换我的每个parcelable AudioLog对象,我有一个自定义的Util类,它将每个对象编组并解组为byte []。我只需要一个类似的类,可以一次性将整个ArrayList及其内容转换为byte [],如果可能的话,谢谢。
答案 0 :(得分:1)
您应该创建一个DataMap对象,该对象可以转换为字节数组。
DataMap audioLogMap = new DataMap();
ArrayList<DataMap> audioLogArrayList = new ArrayList<>();
for (AudioLog audioLog: audioLogs) {
DataMap audioLogMap = new DataMap();
//TODO: copy something from audioLog to audioLogMap
audioLogArrayList.add(audioLogMap);
}
audioLogMap.putDataMapArrayList("key", audioLogArrayList);
byte[] audioLogByteArray = audioLogMap.toByteArray();