Android Wear の開発方法を学んでいます。スマート ウォッチ用のフルスクリーン アクティビティを作成しました。アプリケーションのモバイル部分で JSON データを取得し、これからカスタム オブジェクトのリストを作成します。
私のモバイル アプリでは、ListView でこれらのオブジェクトの情報を表示します。
アプリケーションの Wear 部分で、このリストの限定バージョンを表示したいと考えています。たとえば、リストの上位 3 つが、Wearable の全画面表示アプリに表示されます。
私の問題は、Parcelable オブジェクトを Android Wear に送信する方法がないように思われることです。DataItem に Parcelable を配置するオプションはありません。
次のように、オブジェクトをバイト単位で送信することが唯一のオプションのようです。
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 を実装する必要があることを意味します。これは正しいですか、それともより良い方法がありますか?