2

我正在按照 android wear 文档将消息从一台设备发送到另一台设备(https://developer.android.com/training/wearables/data-layer/messages.html

但我认为示例中存在一些错误,因为发送消息方法抛出 IllegalStateException 并带有以下消息:不能在 UI 线程上调用 await

我该如何解决?

4

2 回答 2

5

而不是调用.await(),使用.setResultCallback(). 例如, ...

result.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>() {
            @Override
            public void onResult(MessageApi.SendMessageResult sendMessageResult) {
                Log.v(TAG, "Sent message");
            }
        });
于 2014-10-23T17:54:38.043 回答
1

你不能这样做,因为await()阻塞了线程。

您想使用异步线程执行此操作,例如使用AsyncTask,就像此处的Google Play 服务文档中建议的那样:https ://developer.android.com/google/auth/api-client.html#Sync

是的,应该更新文档以说明为 Wear Api 做同样的事情。

于 2014-10-23T18:03:24.253 回答