在sendMessage之后,我得到一个PendingResult并设置onResult回调。这种回调永远不会发生。
PendingResult<MessageApi.SendMessageResult> messageResult = Wearable.MessageApi
.sendMessage(googleApiClient, senderNodeId, NOTE_REPLY_PATH,
replyMessage.getBytes());
if (messageResult.isCanceled())
Log.d(TAG, "result cancelled!");
messageResult.setResultCallback(new ResultCallback<MessageApi.SendMessageResult>()
{
@Override
public void onResult(MessageApi.SendMessageResult sendMessageResult)
{
replyStatus = sendMessageResult.getStatus();
runOnUiThread(new Runnable()
{
@Override
public void run()
{
Log.d(TAG, "confirm result");
confirm(replyStatus.getStatusCode() == WearableStatusCodes.SUCCESS);
}
});
}
isCancelled并非如此。我尝试了awat()但是这不能在UI线程上调用(这是)。它是扰乱你必须在调用sendMessage后设置回调(如果它已经由该点发送了那么)。但这是文档想要它的方式。
基本上我的“确认结果”从未发生过。
任何想法为什么?感谢
编辑:
有时候我没有连接到任何节点。这可能就是原因。那么如果它不能调用回调,那么这个界面如何传达呢?这个sendmessage界面设计很差。相反,它应该像
status = sendMessage(callback,other args);
因为没有办法告诉你回调不会发生。