光感測器主要用來檢測手機周圍光的強度,與其他感測器不同的是,該感測器唯讀取一個數值即手機周圍光的強度,且單位為勒克斯(lux)。

 

光感測器的開發與之前介紹過的各種感測器的開發步驟基本相同,只是監測的是SENSOR_LIGHT,即捕捉光的強度。如果對之前的案例進行更改,使其檢測光的強度,則只需要改變監聽器物件及註冊監聽的方法即可,代碼如下所示。

 

java代碼:
private SensorListener mySensorListener = new SensorListener(){
@Override
public void onAccuracyChanged(int sensor, int accuracy) {}
//重寫onAccuracyChanged方法
@Override
public void onSensorChanged(int sensor, float[] values) {
//重寫onSensorChanged方法
if(sensor == SensorManager.SENSOR_LIGHT){
//只檢查光強度的變化
myTextView1.setText("光的強度為:"+values[0]);
//將光的強度顯示到TextView
}
}
};
@Override
protected void onResume() {
//重寫的onResume方法
mySensorManager.registerListener(
//註冊監聽
mySensorListener,
//監聽器SensorListener物件
SensorManager.SENSOR_LIGHT,
//感測器的類型為光的強度
SensorManager.SENSOR_DELAY_UI //頻率
);
super.onResume();
}
 
第6行判斷是否為光強度改變事件,只對光強度改變事件進行處理,得到光強並顯示到螢幕中。光感測器得到的資料只有一個,而並不像其他感測器那樣得到的是X、Y、Z三個方向上的分量。

 

在第15行註冊監聽時,傳入"SensorManager.SENSOR_LIGHT"來通知系統只註冊光感測器。

 

    全站熱搜

    戮克 發表在 痞客邦 留言(0) 人氣()