我正在尝试使用仅使用加速度计来收集数据的 Android 计步器应用程序。我从手机中收集了大量原始数据,发现某些模式构成了我步态的一步,并创建了 3 个布尔值来模拟一步对加速度计的样子。
public boolean beforeStep(float y)
{
if(y > 1.5 && y < 3){
return true;
}
else
{
return false;
}
}
public boolean duringStep(float y)
{
if(y > 3 && y < 5){
return true;
}
else
{
return false;
}
}
public boolean afterStep(float y)
{
if(y > 1.5 && y < 3){
return true;
}
else
{
return false;
}
}
if(beforeStep(accel)){
if(duringStep(accel)){
if(afterStep(accel)){
stepCount++;
}
}
}
起初我在 onSensorChanged() 方法中运行了这些布尔值,但我意识到这意味着它会将相同的加速度值传递给所有三个布尔值,因此程序永远不会识别步骤。如何让 Android 在每次布尔检查之间等待 10 毫秒,以便更新加速度值?
此外,如果有更准确/有效的方法来使用原始加速度数据计算步数,请告诉我!