標籤:
Data Items它被用來同步手機和wear資料介面,一個Date Items通常包含以下幾個部分:
Payload
位元組數組。無論你需要設定資料類型,我們同意對象序列化和還原序列化,大小不能超過100k。
Path
唯一的字串。必須以正斜杠開始(比如,“/path/to/ data”)
通常不須要直接實現DataItem,僅僅須要:
1、建立PutDataRequest對象。指定一個路徑字串差別該item
2、調用setData()設定payload
3、調用DataApi.putDataItem(),請求系統建立一個data item
4、當請求data item時候,系統會返回一個正確的實現了介面的data item對象
使用setData()使用原始位元組,建議使用一個data map。能夠暴露一個便於使用的類似於bundle的資料
使用Data Map同步資料
假設能夠的話。使用DataMap類,能夠使用data items類似Bundle,並且兌現序列化和還原序列化幫你完畢,你能夠操作資料使用鍵值對。
使用data map 的步驟
1 建立PutDataMapRequest對象,設定data item的路徑
2 調用 PutDataMapRequest.getDataMap()建立data map,能夠設定資料
3 設定須要的資料使用put...()方法,如putString()
4 調用 PutDataMapRequest.asPutDataRequest()建立 PutDataRequest對象
5 調用 DataApi.putDataItem() 請求系統建立data item
假設手機與wear沒有串連,則緩衝等到串連後同步
例如以下代碼所看到的
PutDataMapRequest dataMap = PutDataMapRequest.create("/count");dataMap.getDataMap().putInt(COUNT_KEY, count++);PutDataRequest request = dataMap.asPutDataRequest();PendingResult<DataApi.DataItemResult> pendingResult = Wearable.DataApi .putDataItem(mGoogleApiClient, request);
監聽Data Item時間
假設一方資料層使data item發生變化,你可能須要去通知不論什麼變化的資料連線,你能夠實現這些通過時間一個監聽data item的事件,以下是個範例。
@Overridepublic void onDataChanged(DataEventBuffer dataEvents) { for (DataEvent event : dataEvents) { if (event.getType() == DataEvent.TYPE_DELETED) { Log.d(TAG, "DataItem deleted: " + event.getDataItem().getUri()); } else if (event.getType() == DataEvent.TYPE_CHANGED) { Log.d(TAG, "DataItem changed: " + event.getDataItem().getUri()); } }}
著作權聲明:本文部落格原創文章,部落格,未經同意,不得轉載。
Android 訪問Android Wear資料層Api——同步Data Items