gpt4 book ai didi

android - 使用安卓加速度计的计步器

转载 作者:搜寻专家 更新时间:2023-11-01 08:47:32 24 4
gpt4 key购买 nike

我正在构建一个使用加速度计为 Android 设备计算步数的应用程序。(Android 版本 < .4.4)

为此,我使用 x、y 和 z 计算重力 (G)。如果 G 的值大于 STEP_THRESHOLD 则发生了一个步骤:

    @Override
public void onSensorChanged(SensorEvent event) {
synchronized (this) {

if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER) {
return;
}

final float x = event.values[0];
final float y = event.values[1];
final float z = event.values[2];
final float g = Math.abs((x * x + y * y + z * z) / (SensorManager.GRAVITY_EARTH * SensorManager.GRAVITY_EARTH));

if (g > StepUtil.GRAVITY_THRESHOLD) {
/*
* check step times and other checkings
*/
.
.
.
stepCounter++;
}

}
}

问题是:由于加速度计硬件在每个设备中都不同,因此 STEP_THRESHOLD 没有特定的值。似乎每个设备的 STEP_THRESHOLD 值应该是动态的!是否有任何标准可以根据加速度计精度更改 STEP_THRESHOLD 值?

我们将不胜感激。

最佳答案

since accelerometer hardwares is varies in each deviceو there is not a certain value for STEP_THRESHOLD

话虽如此,您的应用显然缺少的是简单的校准,这将允许您的用户在他们的设备上设置阈值级别。告诉他们做几个步骤,获取传感器值,取均值/中值/平均值(任何对您更有效的方法),您就得到了 STEP_THRESHOLD。您甚至可以将此值发送回您的服务器,这样您就可以构建某种数据库,并附带一些或多或少的通用起始值 STEP_AVERAGE。

关于android - 使用安卓加速度计的计步器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26782028/

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