Я просто изучаю, как разрабатывать Android Wear, я создал полноэкранную активность для смарт-часов, а в моей мобильной части приложения я получаю некоторые данные JSON и создаю из этого список пользовательских объектов.
В мобильном приложении я покажу информацию для этих объектов в ListView.
В части Wear моего приложения я хочу показать ограниченную версию этого списка, например, верхние 3 из списка будут показаны в моем полноэкранном приложении на Wearable.
Моя проблема заключается в том, что, похоже, не существует способа отправить Parcelable Objects в Android Wear, нет возможности putParcelable в DataItem.
Похоже, что единственным вариантом является отправка объекта в байтах, например:
public void sendWearableData(GoogleApiClient aGoogleApiClient, ArrayList<MyObject> myObjectList, String path)
{
googleApiClient = aGoogleApiClient;
byte[] testBytes = new byte[0];
if (googleApiClient.isConnected()) {
PutDataMapRequest dataMapRequest = PutDataMapRequest.create(path);
try {
testBytes = BytesUtils.toByteArray(myObjectList);
} catch (IOException e) {
e.printStackTrace();
}
dataMapRequest.getDataMap().putByteArray(Constants.TEST_KEY, testBytes);
PutDataRequest request = dataMapRequest.asPutDataRequest();
Wearable.DataApi.putDataItem(googleApiClient, request);
}
}
Итак, мне нужно преобразовать свой объект в байты, отправить его в Android Wear и преобразовать его обратно? Это означает, что мои объекты, которые я реализовал Parcelable, поэтому я могу отправить их через Intents, теперь также нужно реализовать Serializable, это правильно или есть лучший способ сделать это?