gpt4 book ai didi

android - Shake 事件在各种设备上的工作方式不同 Shake Event 自定义实现

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:12 24 4
gpt4 key购买 nike

我正在为我的应用程序开发简单的摇一摇功能,但我遇到了一个奇怪的问题。当我在我的 Honor5x 上测试它时,它就像一个魅力,但当我试图在三星 S5 上执行它时,它太敏感了。加速度计在不同设备上的工作方式是否可能不同?如果是这样,是否可以根据设备/加速度计精度修改条件?这是我检测摇动事件的代码:



        gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];

float accX = event.values[0] - gravity[0];
float accY = event.values[1] - gravity[1];
float maxSpeed = Math.max(accX, accY);
if (maxSpeed > SHAKE_THRESHOLD)
{
if(shakesInRow == 0){
shakesInRow++;
shakeTime = System.currentTimeMillis();
}else{
if((System.currentTimeMillis() - shakeTime) < SHAKE_TIME_DETECTOR){
shakesInRow++;
}else{
shakesInRow = 0;
shakeTime = 0;
return;
}
if(shakesInRow>= SHAKE_IN_ROW) {
shakesInRow= 0;
runMainActivity();
}
}
}

最佳答案

您可以尝试使用 Square 库进行抖动检测 - seismic

他们在一定时期内收集样本,如果这些样本中有 3/4 正在加速,则表示发生了震动。

关于android - Shake 事件在各种设备上的工作方式不同 Shake Event 自定义实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39701652/

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