2014-07-14 68 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

相關問題