指南针的实现代码两种方法,怎么用
2016-05-15 15:11
591 查看
这是一篇介绍指南针先进方法的博客,但是事实是不能用,笔者试过了~有兴趣的可以看一下,笔者不再赘言
说一下不能用的原因,是因为这个onSensorChanged(SensorEvent event)方法调用这里出了问题,他不是像想像中的那样,根据传感器的类型的不同用if语句就可以控制,(其他的我试过,比如说线性加速度传感器和即将要说的已经过时的方向传感器是可以根据类型用if语句控制的)在磁力传感器和加速度传感器一起使用时,onSensorChanged(SensorEvent event)方法对磁力传感器的监听频率远远大于加速度传感器就导致后面 SensorManager.getRotationMatrix(R, null, accelerometerValues, magneticFieldValues) 方法中的accelerometerValues一直处于未接收数据状态,这样整个过程就走不了了~
所以还是使用最原始的方向传感器吧,
至于方向传感器的缺点,也很明显,就是一开始的传输的数据不准确,将近持续一秒,所以如果是需要比较准确的数据,最好一开始就将方向传感器打开,不用后注销。
说一下不能用的原因,是因为这个onSensorChanged(SensorEvent event)方法调用这里出了问题,他不是像想像中的那样,根据传感器的类型的不同用if语句就可以控制,(其他的我试过,比如说线性加速度传感器和即将要说的已经过时的方向传感器是可以根据类型用if语句控制的)在磁力传感器和加速度传感器一起使用时,onSensorChanged(SensorEvent event)方法对磁力传感器的监听频率远远大于加速度传感器就导致后面 SensorManager.getRotationMatrix(R, null, accelerometerValues, magneticFieldValues) 方法中的accelerometerValues一直处于未接收数据状态,这样整个过程就走不了了~
所以还是使用最原始的方向传感器吧,
sm = (SensorManager) getSystemService(SENSOR_SERVICE); sm.registerListener(this, SensorManager.SENSOR_ORIENTATION,SensorManager.SENSOR_DELAY_GAME);
至于方向传感器的缺点,也很明显,就是一开始的传输的数据不准确,将近持续一秒,所以如果是需要比较准确的数据,最好一开始就将方向传感器打开,不用后注销。
相关文章推荐
- Qt:基于Qt开发的开源小工具包:JQTools
- Java中的项目的导入导出
- 糗百爬虫V2,可爬图片和段子
- PHP页面之间传递参数的四种方式
- Matlab分析音频
- Java面向对象之封装
- python学习笔记3—流程控制if、for、while
- 初识python(1)
- SpringMVC的简单传值(实现代码)
- C++文件上传、下载工具
- java学习地图
- wxPython & PyQT
- 编程学习建议
- PHP语言 -- Smarty变量
- iYMS系统
- Kajiki XML 引擎库
- ResultSet 封装成JavaBean
- ajax验证用户名和密码的实例代码
- matlab中字符串支持latex
- 编程知识如何分类呢?