У меня есть устройство для переноски, с которого данные отправляются на карманное устройство, обернутое в объект DataMap
. На портативном устройстве я реализовал услугу слушателя, который расширяет WearableListenerService
реализовано таким образом:Отправлять данные и ждать ответов с помощью API Wearable Data Layer
public class ListenerService extends WearableListenerService {
private static final String TAG = ListenerService.class.toString();
private static final String WEARABLE_DATA_PATH = "/wearable_data";
@Override
public void onDataChanged(DataEventBuffer dataEvents) {
DataMap dataMap;
for (DataEvent event : dataEvents) {
if (event.getType() == DataEvent.TYPE_CHANGED) {
String path = event.getDataItem().getUri().getPath();
if (path.equals(WEARABLE_DATA_PATH)) {
dataMap = DataMapItem.fromDataItem(event.getDataItem()).getDataMap();
messageReceived(dataMap);
}
}
}
}
private void messageReceived(DataMap dataMap) {
Log.v(TAG, "DataMap received on handheld device: " + dataMap);
}
}
передачи от носимого к ручной работе безупречно. Тем не менее, мне нужно будет отправить обратно с карманного устройства на носки ответ, например, «ok done» или «error xxx». Как я могу это сделать?
Именно этого я и боялся. Нет ли другого более удобного решения? Мне кажется странным управлять «простыми» ответами таким образом ... – Dev
вы можете отправить другое уведомление на носимое, если вы уже обрабатываете локальные оповещения с обоих концов, но я бы выглядел действительно странным. Img – Blackbelt
Сообщение асинхронное что означает, что нет простого подтверждения того, что вы отправляете на носимые. Ответ Блэббелта - это ИМО правильный. –