Android 佩戴加速度计仅提供 +- 2g

Android Wear accelerometer giving only +- 2g

这是我的问题:我正在使用 android 佩戴(索尼智能手表 3)加速度计的典型方式:

    sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    senAccelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    sensorManager.registerListener(this, senAccelerometer, SensorManager.SENSOR_DELAY_FASTEST);



@Override
public void onSensorChanged(SensorEvent sensorEvent) {
    float x;
    float y;
    float z;
    switch (sensorEvent.sensor.getType()) {

       case Sensor.TYPE_ACCELEROMETER:
            Log.d("swing", "onSensorChanged:" + senAccelerometer.getVersion());
            calculateSensorFrequency(System.currentTimeMillis());
            x = sensorEvent.values[0];
            y = sensorEvent.values[1];
            z = sensorEvent.values[2];
            .
            .
            .
       break;
}

onSensorChange 方法中,尽管 Sensor.getMaximumRange() 给出了 16g (156.96 m/s*s),但我只得到了 +- 2g 读数。有没有办法校准加速度计或者这是一个错误?任何帮助将不胜感激。谢谢

P.S。我试图使用 Sensor.getVendor 方法在 google 中找到硬件加速度计模块范围的详细规范,但没有运气。

Sony Smartwatch 3 有一个 EM7180 传感器融合平台 (http://www.emmicroelectronic.com/products/sensor-fusion-sensor-interface/sensor-fusion/em7180sfp) built in with a Bosch BMX055 (https://www.bosch-sensortec.com/bst/products/all_products/bmx055),它有一个加速度计、陀螺仪和磁力计。它有几个加速度范围±2g/±4g/±8g/±16g。但我的读数也只在 +/- 2g 范围内。