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