我在被存儲在DataItem
的Asset
使用DataItemMap
,我和我的穿戴式設備的同步存儲Bitmap
秒。如果我使用過所有我DataItem
S的迭代:Android Wear位圖DataItem的資產規模
DataItemBuffer list = api.getDataItems(connection.getClient()).await()
for(DataItem item : list) {
...
}
如何才能得到每個Asset
的大小?
編輯:當我使用
DataMapItem dataMapItem = DataMapItem.fromDataItem(item);
Asset asset = dataMapItem.getDataMap().getAsset(BITMAP_KEY);
int size = asset.getData().length;
我得到的是說,一個NPE:
嘗試獲取空數組的長度
的Asset
用放:
PutDataMapRequest putRequest = PutDataMapRequest.create(path);
DataMap map = putRequest.getDataMap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 100, stream);
stream.flush();
Asset asset = Asset.createFromBytes(stream.toByteArray());
map.putAsset(mapKey, asset);
Wearable.DataApi.putDataItem(connection.getClient(), putRequest.asPutDataRequest());
我知道我可以做到這一點,但我不想閱讀資產看看它有多大是。但是,該鏈接從未提及任何有關獲取資產大小的內容,所以我希望有一種更簡單的方法可以實現。 – Eliezer
DataApi在讀取數據之前不知道大小。我認爲傳輸大小的最佳方式是在將數據添加到數據項中時將其放入發送端的數據映射中。 – Tom
我其實想要讀取發件人端的大小,但可能是在放置一週後,所以我沒有要測量的原始數據。 – Eliezer