Android指南针校正

更新时间:2023-06-20 08:12:45 阅读: 评论:0

Android指南针校正
指南针
关于指南针的实现,⽹上已经有很多的⽂章了,简单搜⼀下都能看懂,原理都⼀样,要使⽤Android系统的传感器实现,我们先简单看⼀下指南针的实现过程。
指南针的实现
1.传感器
实现指南针需要的传感器可以分为两种,⼀种是屏幕⽅向传感器,但是已经被Google 标记为了 @Deprecated。
@Deprecated
public static final int TYPE_ORIENTATION =3;`
另⼀种⽐较新的⽅式,需要两个传感器配合,分别为加速度传感器和磁场传感器,我们主要说⼀下这种⽅式的实现。
public static final int TYPE_ACCELEROMETER =1;
短裤的英语单词public static final int TYPE_MAGNETIC_FIELD =2;白条抵库
带杨的成语2.获取传感器
⾸先我们需要获取到这两个传感器,记得做判空操作。
3.订阅监听
接下来订阅对这两个传感器的监听:
⾃定义监听实现接⼝:SensorEventListener ,这个接⼝有两个⽅法,分别是:
public void onSensorChanged(SensorEvent event);
public void onAccuracyChanged(Sensor nsor,int accuracy);
关于他们的作⽤,看⼀下接⼝⾥的注释,写的⾮常详细,顺便提⼀嘴,他们写的注释真是长,但是这真的是⼀个好习惯,对⾃⼰也是⼀个很好的提升的过程。高中政治必修一
4.数据处理
最后就是对数据的处理了,通过⽤SDK中给出API对传感器返回数据的处理,就能获得当前的⽅向,这段代码我就直接贴出来吧,
治痔疮偏方
float[] R =new float[9];
RotationMatrix(R, null, accelerValues, magneticFieldValues)){
float[] orientation =new float[3];
float direction =(float) Degrees(orientation[0])*-1.0f;
}el{
Log.d("Compass","Error: RotationMatrix");
}
到此为⽌,你就得到了指南针所需要的全部数据了,然后⽤这个数据去驱动⼀个Imageview + 动画,指南针就实现了。
指南针的校准
初步实现完了指南针,但是,转着转着,发现不准了⾓度,⼀看监听返回的数据也不准了,这时就需要来校准指南针了,具体的做法是什么呢,那就是拿⼿机画8,
那什么时候需要校准呢,怎么判断呢?这就⽤到上⾯监听返回的参数了accuracy:
@Override
public void onAccuracyChanged(Sensor nsor,int accuracy){
Log.d("TAG","onAccuracyChanged: :"+accuracy);
}
那么什么时候校验呢,看⼀下注释,分了5个级别,分别是:
public static final int SENSOR_STATUS_NO_CONTACT =-1;
public static final int SENSOR_STATUS_UNRELIABLE =0;
public static final int SENSOR_STATUS_ACCURACY_LOW =1;
真理越辩越明/**
* This nsor is reporting data with an average level of accuracy,
* calibration with the environment may improve the readings
教学案例*/
public static final int SENSOR_STATUS_ACCURACY_MEDIUM =2;
穿过迷雾
/
** This nsor is reporting data with maximum accuracy */
public static final int SENSOR_STATUS_ACCURACY_HIGH =3;
那么我们就可以知道,精度⼩于3个都不可信
if(accuracy >= SensorManager.SENSOR_STATUS_ACCURACY_HIGH ){
Log.e("Compass"," 不需要校验");
}el{
Log.e("Compass"," 需要校准 ");
}
⾄此,指南针的基本实现,校准的标准判断,就都有了,赶紧实现以下吧。

本文发布于:2023-06-20 08:12:45,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/997030.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:传感器   指南针   实现
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图