Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android OnSensorChanged()方法存在问题_Android_Sensors - Fatal编程技术网

Android OnSensorChanged()方法存在问题

Android OnSensorChanged()方法存在问题,android,sensors,Android,Sensors,我有一个要求,当传感器值改变时,需要相应地显示一些数据 目前我正在做的是,如果当前方位角值和以前的方位角值发生10度的变化,则执行一些操作 问题是,对于每10度的变化(正如我在代码中提到的),操作正在执行。我不希望每改变10度就执行此操作。当设备停止旋转时,应考虑方位值并执行动作。我也用过柜台。但是没有用。这简直要了我的命 这是我的密码 public void onSensorChanged(SensorEvent paramAnonymousSensorEvent) { C

我有一个要求,当传感器值改变时,需要相应地显示一些数据

目前我正在做的是,如果当前方位角值和以前的方位角值发生10度的变化,则执行一些操作

问题是,对于每10度的变化(正如我在代码中提到的),操作正在执行。我不希望每改变10度就执行此操作。当设备停止旋转时,应考虑方位值并执行动作。我也用过柜台。但是没有用。这简直要了我的命

这是我的密码

 public void onSensorChanged(SensorEvent paramAnonymousSensorEvent) {

        CameraSearch.this.azimuth = paramAnonymousSensorEvent.values[0];

        CountDownTimer myCountDown = new CountDownTimer(2000, 1000) {
            public void onTick(long millisUntilFinished) {
                // update the UI with the new count
            }

            public void onFinish() {
                Log.d("","Counter finished");
                if (Math.abs(CameraSearch.this.azimuth - previousAzimuth) >= 10) {

                    Log.d("", "Azimuth: " + CameraSearch.this.azimuth
                            + "PreviousAzimuth: " + previousAzimuth);
                    CameraSearch.this.findScreenOrientation();
                    previousAzimuth = CameraSearch.this.azimuth;
                }
            }
        };
        // start the countDown
        myCountDown.start();

    }
};
请给我建议解决办法。当用户停止旋转设备时,将获取当前方位值并执行操作。请帮帮我


提前谢谢

要实现你想做的事情没有简单的方法。我想到的是,你们要跟踪方位角的标准偏差,当它下降到某个阈值以下时,就会触发你们的动作。您需要的是一种算法,它可以在新样本进入时跟踪标准偏差,而不存储它们,称为在线算法。你可以在这里找到一个例子:


为了确定阈值,我建议您收集一些数据,看看您可以期望的典型值,并据此做出决定。

@chochop,谢谢您的回复!!这我不清楚。还有其他方法吗,至少一个想法就足够了。我无法实现这些算法,需要考虑一点时间因素。@Mahe正如我所说,我想不出任何更简单的解决方案。如果你对尝试实现我的答案不满意,那就等别人回答吧