Android光传感器未触发事件。

5
当使用光传感器时,我遇到了一个问题,即onSensorChanged()事件从未被触发。原因是当监听器在注册时,如果光照强度值保持恒定,则没有变化,因此也没有事件。但是,我仍然想知道光照强度的值!一个恒定的0的光照强度值和一个恒定的60,000之间有很大的区别!
经过一些研究,我意识到没有直接读取传感器的光照强度值的方法。那么,如果光照强度值是恒定的,永远不会触发事件,我该如何获得光照强度值呢?是否有一种方法可以最初设置一个虚假值(例如-1),以便始终会发生事件?或者我的想法错了吗?
非常感谢您的帮助!

1
我注意到,Android 2.3.4 在注册监听器后立即通知当前值。而 Android 2.2 不会这样做。 - inazaruk
有趣,我的手机是2.3.1版本。得找个用2.3.4版本的人来测试一下。 - Glitch
我正在使用魅族 M9。然而,我已经在摩托罗拉 Defy 上复制了这个问题。 - Glitch
2个回答

2

这就是我一直在做的事情。问题是,如果光照强度保持不变,事件将不会被触发。使用你提供的代码,在光传感器上放置一些东西以维持恒定的0光照强度。现在启动应用程序。你永远不会得到一个值,甚至不会得到0的值。它从来没有报告任何东西。我希望它能像预期的那样报告一次值,但它没有。 - Glitch
我知道这不是最好的解决方案,但也许你可以在计时器内检查常量? - Fredrik
@KPBird 它几乎和你的一模一样。事实上,我刚刚编译了你的代码,它有同样的问题。你试过我概述的测试吗?也许这是硬件相关的? - Glitch
@Fredrik,我不确定你的意思是什么? - Glitch
这个例子在平板Andromeda 2上不起作用,是一个糟糕的例子!!当你尝试运行代码时,你需要知道所有设备才能发布这个结果! - user3402040
显示剩余4条评论

0

我很确定这个问题没有解决方案。你只需要希望在直接询问用户之前,光线的变化在一定时间内发生。嗯,好吧。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接