首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在传感器中使用onAccuracyChanged函数

如何在传感器中使用onAccuracyChanged函数
EN

Stack Overflow用户
提问于 2015-12-14 18:04:29
回答 1查看 2K关注 0票数 0

我正在制作一个应用程序,其中使用两个传感器。

  1. TYPE_MAGNETIC_FIELD
  2. TYPE_GRAVITY

我初始化了各自的传感器,然后在onSensorChanged函数中,获取数据并在相同的位置上进行计算。

我有一个简单的问题,如何使用onAccuracyChanged函数过滤掉数据?我要中高精度的数据!

我打印了基本的声明,看看在调试应用程序时得到了什么样的准确性。

代码:

代码语言:javascript
复制
`@Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // Do something here if sensor accuracy changes.
        // You must implement this callback in your code.
        //  I initialized mValuen as mValuen = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);

        if (sensor == mValuen) {
            switch (accuracy) {
                case 0:
                    System.out.println("Unreliable");
                    break;
                case 1:
                    System.out.println("Low Accuracy");
                    break;
                case 2:
                    System.out.println("Medium Accuracy");
                    break;
                case 3:
                    System.out.println("High Accuracy");
                    break;
            }
        }
    }`

根据我的理解,每当传感器报告一个新值onSensorChanged函数时,都会调用它。因此,我不能真正显式地调用该函数(即使可以,只要传感器报告一个新值,就会调用该函数)。

我所有的计算都在这个函数中。如何以中等和高精度过滤掉数据。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-12-15 14:42:19

查看我的this答案,以获得更详细的答案。

假设这是onAccurayChanged函数。

代码语言:javascript
复制
public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // Do something here if sensor accuracy changes.
        // You must implement this callback in your code.
        if (sensor == mValuen) {
            switch (accuracy) {
                case 0:
                    System.out.println("Unreliable");
                    con=0;
                    break;
                case 1:
                    System.out.println("Low Accuracy");
                    con=0;
                    break;
                case 2:
                    System.out.println("Medium Accuracy");
                    con=1;

                    break;
                case 3:
                    System.out.println("High Accuracy");
                    con=1;
                    break;
            }
        }
    }

我声明了一个全局变量,并将其保持为0。在onSensorChanged函数中,在执行所需的计算时,要放置一个if..else条件。如果con值为1,则只进行计算。我拿到输出了。但是,请告诉我,如果我的做法在某种程度上是错误的。谢谢。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34273681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档