示例#1
0
  void sendHeadVector() {
    mHeadTracker.getLastHeadView(headView, 0);
    // Matrix.rotateM(headView, 0, 180, 0, 0, 1);  //upside down
    SensorManager.remapCoordinateSystem(
        headView, SensorManager.AXIS_Z, SensorManager.AXIS_MINUS_Y, headView);
    // SensorManager.remapCoordinateSystem(headView, SensorManager.AXIS_MINUS_Z,
    // SensorManager.AXIS_Y, headView); //rotate for sensor.

    PutDataMapRequest req = PutDataMapRequest.create("/head");
    for (int i = 0; i < 16; ++i) {
      req.getDataMap().putFloat(HEAD_PRE + i, headView[i]);
    }
    req.getDataMap().putLong("time", new Date().getTime());
    Wearable.DataApi.putDataItem(mGoogleApiClient, req.asPutDataRequest())
        .setResultCallback(
            new ResultCallback<DataApi.DataItemResult>() {
              @Override
              public void onResult(DataApi.DataItemResult dataItemResult) {
                if (dataItemResult.getStatus().isSuccess()) {
                  Log.d("TEST", "Data item set: " + dataItemResult.getDataItem().getUri());
                } else if (dataItemResult.getStatus().isCanceled()) {
                  Log.d("TEST", "canceled");
                } else if (dataItemResult.getStatus().isInterrupted()) {
                  Log.d("TEST", "interrupted");
                }
              }
            });
  }