繁体   English   中英

Android接近传感器-值不正确

[英]Android Proximity Sensor - Incorrect value

我在尝试创建一个跟踪接近传感器值的应用程序时遇到了一个问题。 该应用程序的目的是定期记录瞬时接近值(例如30秒)。

根据API文档,将为该类型的传感器创建并附加标准侦听器。 但是,即使我用手遮住传感器,该值也始终报告为“ 5.0”(5cm,传感器的最大值)。

但是,如果我启动一个DIFFERENT应用程序(该应用程序还监视接近传感器值),则两个应用程序都会开始正确报告接近度。 当我关闭另一个应用程序( Android Sensor Box )时,我的应用程序始终恢复为仅报告5.0。

我已经调试了应用程序,并在“ onSensorChanged ”事件中设置了一个断点,以再次检查将什么SensorEvent对象传递给onSensorChanged方法,并且始终为5.0

编辑#2:它似乎不限于接近传感器。 陀螺仪传感器的行为相同,而加速度计和磁力计则显示正确的最新值。 引用和访问这四个文件的方式相同。

有任何想法吗?

好吧,事实证明,我将再次回答自己的问题。

应用程序的结构方式(有充分的理由)意味着注册了一个侦听器,并且传感器的第一个报告值被当作读数,而没有不断接受新的读数。 这对于加速度计读数工作正常,但事实证明,某些传感器在该第一个读数中报告了它们的默认值(例如,接近传感器为“ FAR”,陀螺仪为0.0 / 0.0 / 0.0)。 只有在2-3个“ onSensorChanged”事件之后,才开始报告正确的值。

我假设这与节电有关,某些传感器需要时间才能“准备好”报告数据。 我不知道为什么可接受的做法是用错误的值来触发sensorChanged事件,但这似乎正在发生。

尽管如此,对我来说,解决方法是丢弃前2-3个读数(无论如何它们都以毫秒为间隔进来),而只是将第四个读数用作更可靠的读数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM