From b3a449c53df4bf32610a679c10dee23572b40bcd Mon Sep 17 00:00:00 2001
From: David Friedman
-However, instead of working with raw bytes using
-When possible, use the To use a data map: Note:
+
If the handset and wearable devices are disconnected,
the data is buffered and synced when the connection is re-established.
setData() to set the payload.
DataApi.putDataItem() to request the system to create the data item.
DataItem interface.
- setData(),
-we recommend you use a data map, which exposes
+When requesting data items, the system returns objects that properly implement the
+DataItem
+ interface. However, instead of working with raw bytes using
+
+setData(), we recommend you use a data map, which exposes
a data item in an easy-to-use {@link android.os.Bundle}-like interface.
Sync Data with a Data Map
DataMap class.
+When possible, use the
+DataMap class.
This approach lets you work with data items in the form of an Android {@link android.os.Bundle},
-so object serialization and de-serialization is done for you, and you can manipulate data with key-value pairs.
+so the system does object serialization and deserialization for you, and you can manipulate data
+with key-value pairs.
put...() methods, such as
putString().
PutDataMapRequest.asPutDataRequest()
to obtain a PutDataRequest object.
DataApi.putDataItem() to request the system to create the data item.
+
+In Google Play services 8.3 and later, +the +{@code DataApi} interface +allows urgent requests for syncing of +{@code DataItems}. +Normally, the system may delay delivery of +{@code DataItems} +to the Wear network in order to improve battery life +for user devices, but if a delay in syncing +{@code DataItems} +would negatively impact user experience, you +can mark them as urgent. For example, in a remote control app where the user expects their actions to be +reflected immediately, you can have the system sync your +{@code DataItems} +immediately by calling + +{@code setUrgent()}. +
+ ++If you do not call + +{@code setUrgent()}, the system may delay up to 30 minutes before syncing non-urgent +{@code DataItems}, +but you can usually expect the delay to be a few minutes, if at all. +The default urgency is now non-urgent, so you must use + +{@code setUrgent()} if you wish to retain the immediate-sync behavior that +existed in previous versions of the Wear API. +
+If one side of the data layer connection changes a data item, you probably want