2010-07-23 39 views
0

爲了能夠爲我的應用做一些準確的計算,我需要能夠每隔100ms讀取一次加速度計。我還沒有找到一種方法在android上這樣做,似乎獲得加速度計讀數的唯一方法是放置一個可以以不同間隔收聽的偵聽器。基本上,有沒有辦法以確切的時間間隔閱讀?每x秒獲取一次加速度計讀數的方法?

-Jake

回答

2

我會註冊一個加速器監聽器,然後在聽者,我會讀取系統時間,並且僅當1秒鐘過去了,你可以更新你的其它方法。

+0

是的,這個工程,我只是不知道是否有內置的東西。 – jakehschwartz 2010-07-23 18:06:53

0

在監聽器中放置一個Thread.sleep()以節省讀數。他們在一個單獨的線程上運行。

1

提出的解決方案似乎比我在項目中使用的替代方案更耗電。它是這樣的:

  1. 設置鬧鐘(android.app.AlarmManager),這將是setRepeatingx秒。
  2. onReceive的報警registerListener與您的便利的傳感器設置。
  3. SensorEventListeneronSensorChanged中根據需要使用event的值。然後unregisterListener

步驟2和3將每x秒重複一次。

我希望我會粘貼所有的代碼,但它很長,與其他功能交織在一起,我相信你可以在網上找到所有的細節。