2014-07-14 52 views
1

我有以下代码块向我的设备发送消息,但消息没有发送...我不知道为什么...Android Wear消息API未知错误代码4004

这里是我建我的GoogleApiClient代码:

mClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(new ConnectionCallbacks() { 
       @Override 
       public void onConnected(Bundle bundle) { 
        Log.d("dirk", "Google API Client connected"); 
        sendMessage(); 
       } 

       @Override 
       public void onConnectionSuspended(int cause) { 
        Log.d("dirk", "Google API Client disconnected, cause: " + cause); 
        mConnected = false; 
        mConnecting = false; 
        // TODO handle disconnect 
       } 
      }) 
      .addOnConnectionFailedListener(new OnConnectionFailedListener() { 
       @Override 
       public void onConnectionFailed(ConnectionResult result) { 
        Log.d("dirk", "Google API Client connection failed, reason: " + result); 
        mConnected = false; 
        mConnecting = false; 
        // TODO handle connection failure 
       } 
      }) 
      .addApi(Wearable.API) 
      .build(); 

这里是我的代码,这是获得从的sendMessage方法叫:

Wearable.MessageApi.sendMessage(getClient(), nodeId, PATH, null).setResultCallback(new ResultCallback<SendMessageResult>() { 
     @Override 
     public void onResult(SendMessageResult sendMessageResult) { 
      if (!sendMessageResult.getStatus().isSuccess()) { 
       Log.d("dirk", "message could not be sent: " + sendMessageResult.getStatus().toString()); 
       Log.d("dirk", "Client connected: " + getClient().isConnected()); 
       // TODO show communication error 
      } 
     } 
    }); 

的记录是在这里:

Google API Client connected 
message could not be sent: Status{statusCode=unknown status code: 4004, resolution=null} 
Client connected: true 

所以所有的条件似乎都很好,但未知的错误代码4004不能解决(至少我没有发现任何错误到目前为止)。 任何人的想法可能是什么原因呢?

Dirk

+0

您没有发布在sendMessage方法中的nodeId变量中传递的值。你确定它是有效的吗? –

回答

1

我发现一个文档,支持我以前的评论上面的评论。请看WearableStatusCodes类 - 它包含WearableApi方法结果中使用的状态代码。 https://developer.android.com/reference/com/google/android/gms/wearable/WearableStatusCodes.html#INVALID_TARGET_NODE

所以这个错误不再是 “未知” :) - 4004INVALID_TARGET_NODE代码。
请检查您在nodeId变量中通过的值。

+0

明天早上我会检查,但我想我使用Node.getId()作为输入。 Thx的答复,如果正确,我把它标记为正确的明天! – dirkvranckaert

+0

没问题。其他一切都很好。除了GoogleApiClient对象上的“connect()”方法不存在 - 但是从你的日志看来,你调用它的地方:)最后一个问题是什么是你得到id(getId())这个“节点” 。我希望它是一个有效的节点,而不是发送者节点(不知道是否允许发送消息给发送者节点本身:) –

+0

可能已经检查:-)作为节点ID传递的值确实不正确。我的错。很棒的是你找到了状态代码:-)在这个早期阶段,文档有时会有点混乱。谢谢你的帮助!现在下一部分是让我的手机收到消息(这似乎还没有工作;-))。 – dirkvranckaert

相关问题