當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Android中傳感器的使用
我們在Android中經(jīng)常使用一些傳感器,下面是API定義的幾個傳感器常量:
我們在使用傳感器時一般遵循以下步驟,我們以加速傳感器為例。
首先,獲得相應(yīng)的傳感器管理器。
sensorManager=(SensorManager)getSystemService(Context.SENSOR_SERVICE);
其次,為傳感器注冊監(jiān)聽器,我們這里使用的是加速傳感器。
Sensor sensor = ensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(this,sensor , SensorManager.SENSOR_DELAY_FASTEST);
第一個參數(shù)是對應(yīng)的加速傳感器的屬性;第三個參數(shù)是模式的選擇,此處的DELAY_FASTEST
表示獲得傳感器數(shù)據(jù)的速度,這里所寫的表示盡可能快的接收數(shù)據(jù)。除此之外,我們還有如下幾種模式:
SENSOR_DELAY_GAME 如果利用傳感器開發(fā)游戲,建議使用該值。 一般大多數(shù)實時行較高的游戲使用該級別。
SENSOR_DELAY_NORMAL 默認(rèn)的獲取傳感器數(shù)據(jù)的速度。標(biāo)準(zhǔn)延遲,對于一般的益智類游戲或者EASY界別的游戲可以使用,但過低的采樣率可能對一些賽車類游戲有跳幀的現(xiàn)象。
SENSOR_DELAY_UI 若使用傳感器更新UI, 建議使用該值。
然后,當(dāng)我們?yōu)閭鞲衅魇褂昧吮O(jiān)聽。我們需要實現(xiàn)具體的監(jiān)聽方法,而在Android中,應(yīng)用程序使用傳感器,主要依賴于android.hardware.SensorEventListener接口:
Public class UpdateService extends Service implements SensorEventListener {
public void onSensorChanged(SensorEvent event) {
}
}
當(dāng)傳感器的值發(fā)生變化時,執(zhí)行onSensorChanged中的方法。具體實現(xiàn)的方法就不在這里贅述了。