【问题标题】:How to get linear acceleration data from SensorManager?如何从 SensorManager 获取线性加速度数据?
【发布时间】:2021-12-01 07:02:59
【问题描述】:

我正在尝试使用 Kotlin 在 Android 应用上的文本视图中显示手机的线性加速度。

在一项活动中,我有

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 时)。

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

【问题讨论】:

    标签: android xml kotlin sensors


    【解决方案1】:

    据我了解,每次手机具有的传感器之一更新其值时,都会调用 onSensorChanged()(当活动类扩展 SensorEventListener 时)。

    您还需要在SensorManager 上致电registerListener(),提供您的听众和您想要的传感器。见:

    【讨论】:

    • 这就是缺少的!感谢您提供这些链接,出于某种原因,我查看了motion sensors 上的 android 文档,我认为这就是它的所有文档。现在完美运行。
    猜你喜欢
    • 2015-10-27
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    相关资源
    最近更新 更多