繁体   English   中英

如何减慢光传感器的监听速度?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM