簡體   English   中英

如何每秒從 Android 構建的 Accelerometer 中讀取一次?

[英]How to read only once from Android build in Accelerometer per second?

在 sensorManager 的幫助下,我正在讀取加速度計讀數。 目前最慢的設置,即 SENSOR_DELEY_NORMAL ,加速度計每秒讀取大約 10 次。 有什么方法可以減少發送閱讀,可能是每秒一次。

 @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
        Sensor mySensor = sensorEvent.sensor;

        if (mySensor.getType() == Sensor.TYPE_ACCELEROMETER) {
            x = sensorEvent.values[0];
            y = sensorEvent.values[1];
            z = sensorEvent.values[2];
            rootSquare = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));
            
            //it reads every second 10 times ie 200 millisecon
}


 @Override
    protected void onResume() {
        super.onResume();

    sensorManager.registerListener(this, accelorometer, SensorManager.SENSOR_DELAY_NORMAL);

    }

根據這個答案,您還可以定義自己的速率,例如 1000 ms = 1s:

 @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
        Sensor mySensor = sensorEvent.sensor;

        if (mySensor.getType() == Sensor.TYPE_ACCELEROMETER) {
            x = sensorEvent.values[0];
            y = sensorEvent.values[1];
            z = sensorEvent.values[2];
            rootSquare = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));
            
            //it reads every second 10 times ie 200 millisecon
}


 @Override
    protected void onResume() {
        super.onResume();

    int READINGRATE_ONE_SEC = 1000000;
    sensorManager.registerListener(this, accelorometer, READINGRATE_ONE_SEC);

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM