2011-04-21 46 views
5

我需要一些幫助從定位傳感器獲取信息。正如我在幾乎所有的教程/指南中看到的那樣,這些值被傳遞給一個事件(onSensorChanged(SensorEvent event),可以在其中進行操作。電磁/定位傳感器不斷運行(爲了延長電池壽命)我希望能夠打開它,獲取當前值並關閉它。是否有任何方法可以做到這一點?從傳感器中提取單個值而不使用事件

我有做了一些搜索,發現我可以嘗試多線程,但我並不完全適應這一點。

我在找的是類似的東西(抱歉缺乏格式化我似乎無法找到它出):

private void getOrientationNOW() { 
    m_SensorManager.registerListener(mySensorEventListener, m_MagneticSensor, SensorManager.SENSOR_DELAY_FASTEST); 
    //---->Something here to get the current value from the sensor 
    m_SensorManager.unregisterListener(mySensorEventListener); 
} 

如果這是可能的,請幫助我!

謝謝大家提前!

回答

0

當您爲傳感器註冊偵聽程序時,每當傳感器值根據參數改變時,就會調用該活動。因此,如果您只想獲取一個值,那麼您可以在獲取值之後取消註冊該傳感器的偵聽器。

+0

我理解這一點,但是如何在不退出當前方法的情況下獲取此值? – RomanP 2011-04-21 11:00:57

+0

我不認爲它是可能的。如果您嘗試在UI線程上獲取值,可能會導致ANR。 – Josnidhin 2011-04-21 15:51:17

+0

在這種情況下,我將如何在單獨的線程上運行此操作? – RomanP 2011-04-23 15:28:05

相關問題