2016-09-29 4 views
0

나는 parcelable 사용자 정의 항목의 ArrayList를이 내가 전체 ArrayList를 변환해야,MessageAPI를 사용하여 Android Wear에서 ArrayList <ParcelableCustomObject>를 보내는 방법은 무엇입니까? 나는 MessageAPI 사용하여 휴대 전화로 시계에서이를 보낼</p> <pre><code>ArrayList<AudioLog> audioLogs = getAudioLogs(); </code></pre> <p>:

Wearable.MessageApi.sendMessage(googleClient, node.getId(), path, audioLogs).await(); 

을하지만 및 sendMessage 메소드가 취하는 것처럼 byte []에 내용을 저장합니다. - (Google 클라이언트 클라이언트, int id, 문자열 경로, 바이트 [] 메시지).

각 Parcelable AudioLog 객체를 변환하려면 각 사용자를 Util 클래스로 정렬하고 각각을 [] []로 마샬링합니다. 그저 가능하다면 고맙습니다. 전체 ArrayList와 그 내용을 byte []로 변환 할 수있는 비슷한 클래스가 필요합니다.

답변

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();