[英]How to slow the rate at which light sensor listens?
我想限制光传感器检测光的频率,以节省电池电量和 CPU 使用率。
在阅读了 SO 并亲自尝试之后,我发现更改registerListener
方法的参数没有任何作用。
所以我猜下一个赌注是让它进入睡眠状态,或者每次传感器感应到光时等待? 我该怎么做? 我试着把wait(2000);
在里面,但这给出了一个错误。
这是光传感器代码:
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor light = sm.getDefaultSensor(Sensor.TYPE_LIGHT);
SensorEventListener listener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
//Here is where I want to do my stuff
}
};
sm.registerListener(listener, light, SensorManager.SENSOR_DELAY_NORMAL);
以最短的时间间隔做你的事情:
private final long minimumInterval = 100;
private long lastRefresh;
SensorEventListener listener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
long timeMillis = System.currentTimeMillis();
if (lastRefresh - timeMillis > minimumInterval) {
lastRefresh = timeMillis;
//do stuff
}
}
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.