我在被存储在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