在Android 4+上,Sensor.TYPE_LINEAR_ACCELERATION返回null

时间:2013-01-17 13:29:46

标签: android android-sensors

我想在我的应用程序中使用加速度计数据。

我能够毫无问题地访问TYPE_ACCELEROMETER,但许多人建议使用已经从地球引力过滤掉的TYPE_LINEAR_ACCELERATION。看起来我无法访问该传感器,因为在下面的代码中,日志将返回null。 从我的理解TYPE_LINEAR_ACCELERATION可用作Android API上的“软件传感器”大于8 ...我在三星Galaxy Tab 2上使用14作为我的最小值。

知道为什么我会变空吗?是因为这个型号没有陀螺仪吗?

代码:

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

mLinearAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);

Log.i("TYPE_LINEAR_ACCELERATION", String.valueOf(mLinearAccelerometer));

由于

编辑:添加了缺失的“=”符号

1 个答案:

答案 0 :(得分:3)

根据the android motion sensor documentation

Android开源项目(AOSP)提供三种基于软件的运动传感器:重力传感器,线性加速度传感器和旋转矢量传感器。这些传感器在Android 4.0中进行了更新,现在使用了设备的陀螺仪......所有这三种传感器都依赖于陀螺仪:如果设备没有陀螺仪,这些传感器就不会出现,也无法使用。
。所以你的猜测是正确的,没有陀螺仪,重力传感器就无法使用。