Google Glass:并非所有的轴似乎都使用Accelerometer

时间:2014-07-18 03:52:07

标签: accelerometer google-glass

我正在尝试制作一个简单的玻璃器皿应用程序,在屏幕上显示加速度计数据。我发布的代码适用于我的Android手机,但是当我在谷歌眼镜上使用它时,只有Y轴似乎正常工作(向上和向下看)。

当我说Y轴时,它实际上是来自SensorEvent event.values[]数组的第三个数组条目(而不是第二个数组条目 - 请参阅代码)。

所有TextViews DO显示的浮动值与它们在我的Android手机上的显示方式类似,但是当我移动我的头时,它们的变化不大(大约.1到.2)。

public class SensorActivity extends Activity implements SensorEventListener {

  SensorManager mSensorManager;
   mAccel;

  TextView tvx, tvy, tvz;

  @Override
  protected void onCreate(Bundle bundle) {
    super.onCreate(bundle);

    setContentView(R.layout.main);
    tvx = (TextView) findViewById(R.id.tvx2);
    tvy = (TextView) findViewById(R.id.tvy2);
    tvz = (TextView) findViewById(R.id.tvz2);

    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mAccel = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    mSensorManager.registerListener(this, mAccel, SensorManager.SENSOR_DELAY_NORMAL);

  }

  @Override
  protected void onPause(){
    super.onPause();
    mSensorManager.unregisterListener(this);
  }

  @Override
  protected void onResume(){
    super.onResume();
    mSensorManager.registerListener(this, mAccel, SensorManager.SENSOR_DELAY_NORMAL);
  }

  @Override
  public void onAccuracyChanged(Sensor sensor, int accuracy) {


  }


  @Override
  public void onSensorChanged(SensorEvent event) {

    float x = event.values[0];
    float y = event.values[1];
    float z = event.values[2];

    tvx.setText(Float.toString(x));
    tvy.setText(Float.toString(y));
    tvz.setText(Float.toString(z));

  }

}

Glass文档几乎指向Android文档,所以我假设它们应该是相同的。 任何见解将不胜感激。

**** NEW UPDATE ****

现在,突然间。 Y轴正在读取Y方向(Z轴也是如此)。主要问题是Y轴读数从值“9”开始并且在任一方向(无负方向)变为“0”,因此确定用户正在寻找的位置是个问题。我知道我可以将Z轴称为Y轴,但这只是掩盖了一个不同的问题。 事实证明,X轴正在记录头部倾斜而不是头部转动(这与文档不一致)。我没有找到任何有关校准加速度计的文件(如果可能的话)。

0 个答案:

没有答案