0

時計のジャイロスコープを利用する SmartWatch 1 用のアプリをいくつか開発しました。やっと開発用の SmartWatch 2 を手に入れましたが、ジャイロスコープの反応がかなり悪いことに気付きました。たとえば、SmartWatch 1 では、どんなにわずかな動きでも記録されるようです。ただし、SmartWatch 2 では、読み取りは 100 ミリ秒のタイマーで実行されるようです。センサーとやり取りする方法は次のとおりです。

private final AccessorySensorEventListener mListener = new AccessorySensorEventListener() {
    public void onSensorEvent(AccessorySensorEvent mySensorEvent) {
        sensorEvent = mySensorEvent;
        float[] values = sensorEvent.getSensorValues();
        currentX = values[0];
        currentY = values[1];
        currentZ = values[2];
    }
}

センサーを登録するためのさまざまなバリエーションも試しました。

mSensor.registerInterruptListener(mListener);

- と -

mSensor.registerListener(mListener, Sensor.SensorRates.SENSOR_DELAY_FASTEST, Sensor.SensorInterruptMode.SENSOR_INTERRUPT_DISABLED);

- と -

mSensor.registerFixedRateListener(mListener, Sensor.SensorRates.SENSOR_DELAY_FASTEST);

これらはすべて、まったく同じ効果をもたらすようです。SmartWatch 2 でこれを間違っているのでしょうか、それとも SmartWatch 2 のジャイロスコープの反応が悪いのでしょうか?

4

1 に答える 1