如何从SensorManager获取线加速度数据?
How to get linear acceleration data from SensorManager?
我正在尝试使用 Kotlin 在 Android 应用程序的文本视图中显示 phone 的线性加速度。
在一个activity中,我有
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()
}
}
}
据我了解,每当 phone 的传感器之一有更新时,onSensorChanged()
就会被调用(当 activity class 扩展 SensorEventListener
时)它的价值。
从其他答案和文档中,我应该能够看到改变其值的传感器类型,在我的例子中,如果它是线性加速度传感器,新值应该写在我的文本视图中.
From my understanding, onSensorChanged() gets called (when the activity class extends SensorEventListener) every time one of the sensors the phone has updates its value.
您还需要在 SensorManager
上调用 registerListener()
,提供您想要的监听器和传感器。参见:
我正在尝试使用 Kotlin 在 Android 应用程序的文本视图中显示 phone 的线性加速度。
在一个activity中,我有
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()
}
}
}
据我了解,每当 phone 的传感器之一有更新时,onSensorChanged()
就会被调用(当 activity class 扩展 SensorEventListener
时)它的价值。
从其他答案和文档中,我应该能够看到改变其值的传感器类型,在我的例子中,如果它是线性加速度传感器,新值应该写在我的文本视图中.
From my understanding, onSensorChanged() gets called (when the activity class extends SensorEventListener) every time one of the sensors the phone has updates its value.
您还需要在 SensorManager
上调用 registerListener()
,提供您想要的监听器和传感器。参见: