ANDROID在点击时提供传感器事件值(单值)

时间:2013-09-25 13:47:41

标签: android android-sensors sensormanager

我尝试使用sensormanager获取方向角度,点击按钮的事件,并在文本视图中添加值,但传感器值在用户界面上每纳秒更新一次。你能帮忙创建一个代码,让特定时间戳的传感器事件值。

提前致谢

1 个答案:

答案 0 :(得分:1)

没有直接从传感器获取单个值的方法。您将不得不使用解决方法:

  • onClick()方法中,为该传感器调用registerListener()
  • onSensorEventChanged()方法中,调用unregisterListener(),然后更新TextView。

收到一个事件后,这将从侦听器取消注册。

注意,hovever:

  • 事件传递将是异步的。当onClick()返回时,TextView将没有新值。任何依赖于此的处理都需要在onSensorEventChanged()
  • 中进行
  • 在您的代码从传感器取消注册之前,您可能会从传感器收到多个事件,因此仍然存在一些竞争条件。如果这是不受欢迎的,请跟踪您是否已收到活动并丢弃任何后续活动。
  • 有时传感器传送数据可能会很慢(我已经看到它发生了)。您的活动有可能在活动结束前终止,因此当您的活动进入后台时(例如unregisterListener()),请确保额外拨打onPause()