gpt4 book ai didi

android - 如何以固定频率从 Android 加速度计传感器获取 x、y、z 值,例如每 20 毫秒、40 毫秒或 60 毫秒

转载 作者:行者123 更新时间:2023-11-29 14:05:57 25 4
gpt4 key购买 nike

我在做一个 Android 项目,遇到了下面的情况:

  1. 现在我们需要一个固定频率的加速度计值,例如 20ms、40ms 或 60ms

  2. 现在我们是 SENSOR_DELAY_GAME,但我们发现不同的设备对此参数有不同的间隔。例如,G2 使用 40ms,G7 使用 60ms,Nexus S 使用 20ms。

  3. 我尝试过设置timer或者使用thread.sleep,但是因为Java的GC问题,无法让系统定时获取值。

这很烦人,如果有人知道在 Android SDK 中是否有合适的方法让我以固定频率获取加速度计值,那将非常有帮助!

非常感谢!

最佳答案

我通过简单地丢弃比我想要的更快的值来做到这一点。从电池消耗的角度来看并不理想,因为我需要让传感器比我需要的更频繁地为我供电,但至少我可以控制它们定期进入。

类似于:

static final int ACCEL_SENSOR_DELAY = 100;  // the number of milisecs to wait before accepting another reading from accelerometer sensor
long lastAccelSensorChange = 0; // the last time an accelerometer reading was processed
@Override
public void onSensorChanged(SensorEvent sensorEvent) {


if (sensorEvent.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE) return;

long now = System.currentTimeMillis();
if (now-ACCEL_SENSOR_DELAY > lastAccelSensorChange) {
lastAccelSensorChange = now;
mCompassValues = event.values.clone();
//... do your stuff
}

关于android - 如何以固定频率从 Android 加速度计传感器获取 x、y、z 值,例如每 20 毫秒、40 毫秒或 60 毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com