簡體   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