onAccuracyChanged, why?

梦想的初衷 提交于 2019-12-01 19:02:05
driftking9987

According to my understanding, OnAccuracyChanged method is invoked whenever a sensor reports with different accuracy and onSensorChanged method is called whenever a sensor reports a new value.

I too had the same question, as in how to make use of onAccuracyChanged method.

Let's say you want the sensor data only when the accuracy is high,nothing below that. One way to do that is to create a new global variable. Inside the onAccuracyChanged method, initialize it to some value, and inside onSensorChanged function, add an if..else condition.

Sample code:

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=0;

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

Now use condition as if (con==1) to do the required changes.

P.S. According to the android documentation.

public abstract void onAccuracyChanged (int sensor, int accuracy)

Called when the accuracy of a sensor has changed. See SensorManager for details.Parameterssensor The ID of the sensor being monitored accuracy The new accuracy of this sensor. So whenever the accuracy changes,you will have a reference to that change. Please let me know if am missing something. Thanks.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!