Android 使用可穿戴数据层API发送数据并等待回答

Android 使用可穿戴数据层API发送数据并等待回答,android,listener,wear-os,android-wear-data-api,Android,Listener,Wear Os,Android Wear Data Api,我有一个可穿戴设备,数据从该设备发送到一个封装在DataMap对象中的手持设备。在手持设备上,我实现了一个侦听器服务,该服务扩展了WearableListenerService,实现方式如下: public class ListenerService extends WearableListenerService { private static final String TAG = ListenerService.class.toString(); private stati

我有一个可穿戴设备,数据从该设备发送到一个封装在
DataMap
对象中的手持设备。在手持设备上,我实现了一个侦听器服务,该服务扩展了
WearableListenerService
,实现方式如下:

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”。我该怎么做呢?

它的工作原理是一样的。您的可穿戴应用程序上需要一个子类
WearableListenerService
,该子类在您的AndroidManifest.xml上声明,操作为
com.google.android.gms.wearable.BIND\u LISTENER
。当手持设备准备好向可穿戴设备发送消息时,您可以使用
DataApi
MessageApi
并在另一个端点调用相应的回调,这正是我所担心的。没有其他更方便的解决办法吗?在我看来,以这种方式管理“简单”答案似乎很奇怪……如果你已经在处理两端的本地通知,你可以向可穿戴设备发送另一个通知,但我看起来真的很奇怪,因为通信是异步的,这意味着没有对你发送给可穿戴设备的任何内容的简单确认。布莱克贝尔的答案是正确的。