如何从SensorManager获得线性加速度数据?



我试图在Android应用程序上使用Kotlin显示手机的textview内的线性加速度。

的一个活动,我有

var sensorManager : SensorManager? = null
var lastUpdatedDate : Date? = null

然后,在onCreate()方法中,我有

lastUpdatedDate = Date(System.currentTimeMillis())
sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager

我的onSensorChanged()方法如下:

@Override
override fun onSensorChanged(event: SensorEvent?) {
when (event?.sensor?.type) {
Sensor.TYPE_LINEAR_ACCELERATION -> {
timer_since_started_detecting.text = event.values[0].toString()
}
}
}

从我的理解,onSensorChanged()被调用(当活动类扩展SensorEventListener时)每次手机的一个传感器更新其值。

从其他答案和文档中,我应该能够看到传感器的类型改变了它的值,在我的情况下,如果它是线性加速度传感器,新的值应该写在我的textview内。

从我的理解,onSensorChanged()被调用(当活动类扩展SensorEventListener时)每次手机的传感器之一更新其值。

您还需要在SensorManager上调用registerListener(),提供您想要的侦听器和传感器。看到:

  • SensorManager文档
  • 传感器概述文档