我需要在 Android 上使用光传感器,但是,我并不经常需要它。我只需要两秒钟一次。我只能在两秒钟内使用这些值,但它会更快地耗尽电池。我查看了文档,上面说,在注册时,延迟可以这样设置:
sensorManager.registerListener(lightEventListener, lightSensor, 1000000,1000000);
我不工作,它以超快的速度返回值。即使我在注册时输入了 1000000 值。
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
root = findViewById(R.id.root);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
sensorManager.registerListener(this, lightSensor, 1000000, 1000000);
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
sensorManager.unregisterListener(lightEventListener);
}
@Override
public void onSensorChanged(SensorEvent event) {
if(event.sensor.getType() == Sensor.TYPE_LIGHT) {
float value = event.values[0];
getSupportActionBar().setTitle("Luminosity : " + value + " lx");
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}