Android罗盘精度-何时校准? [英] Android compass accuracy - when to calibrate?

查看:54
本文介绍了Android罗盘精度-何时校准?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我开发了一个使用罗盘提供一些增强现实功能的应用程序.我发现有时需要校准指南针以使其正常工作.

I develop an application which provides some augmented reality features using compass. I found out that sometimes I need to calibrate my compass to make it work well.

我怎么(以编程方式)知道需要校准?

我的意思是我知道如何使用8图案图形来校准指南针,但是我想检测到需要进行校准并向用户显示一些警告(您的指南针不够准确,请校准您的指南针传感器.")

I mean I know how to calibrate compass using the 8-pattern figure, but I want to detect that calibration is needed and display some alert to user ("Your compass is not accurate enough, please calibrate your compass sensor.").

请问有可能吗?谢谢!

推荐答案

我的解决方案是使用SensorEventListener接口的 onAccuracyChanged()方法.

My solution would be to use the onAccuracyChanged() method of the SensorEventListener interface.

这就是我要做的:

//In SensorEventListener interface implementation    
@Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        switch(sensor.getType()){
            case Sensor.TYPE_MAGNETIC_FIELD :
                switch(accuracy) {
                    case SensorManager.SENSOR_STATUS_ACCURACY_LOW :
                        doSomething();
                        break;
                    case SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM :
                        doSomethingElse();
                        break;
                    case SensorManager.SENSOR_STATUS_ACCURACY_HIGH :
                        doNothing();
                        break;
                }
                break;
            default:
                break;
        }
    }

您还应该在这里查看此答案: https://stackoverflow.com/a/7877688/7501326

You should also look at this answer here : https://stackoverflow.com/a/7877688/7501326

通常,如果未校准设备,您会看到方位角值随很小的旋转而变化很大.这就是我所担心的."

这篇关于Android罗盘精度-何时校准?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆