Android 光亮度感應

最近在看傳感器這方面的東西,發現Android封裝了好多傳感器,終於知道自動屏幕感應亮度是怎麼做的了;
來分享一下,其實代碼也非常簡單:

public class MainActivity extends Activity {

    private SensorManager sensorManager;

    private TextView light;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        light = (TextView) findViewById(R.id.light_level);
        sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
        sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (sensorManager != null) {
            sensorManager.unregisterListener(listener);
        }
    }

    private SensorEventListener listener = new SensorEventListener() {

        @Override
        public void onSensorChanged(SensorEvent event) {
            // values數組中第一個下標的值就是當前的光照強度
            float value = event.values[0];
            light.setText("當前亮度爲" + value + " lx");
        }

        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
        }

    };

}

這就是全部代碼!初始化SensorManager,Sensor,還有註冊監聽器,values數組中第一個下標的值就是當前的光照強度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章