如何从传感器获得最大可靠性和最小延迟

时间:2017-08-05 07:44:33

标签: android wear-os android-sensors

一个听众为3个传感器(加速计,陀螺仪和心率)或3个独立的听众用于所有传感器?

这就是我注册传感器的方式:

sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    sensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
    acc_sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    heart_sensor= sensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE);

这是我目前获取价值观的方法:

if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE) {

        }
else if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {

        }
else if (event.sensor.getType() == Sensor.TYPE_HEART_RATE) {

        }

问题是在一段时间内获得的值的数量是不一致的。 Moto-360的采样率为50,延迟设置为DELAY_FASTEST,如下所示:

sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_FASTEST);
sensorManager.registerListener(this, acc_sensor, SensorManager.SENSOR_DELAY_FASTEST);
  sensorManager.registerListener(this,heart_sensor,SensorManager.SENSOR_DELAY_FASTEST);

已经测试了给定值的数量,范围从1秒到4小时,并且采样率(计算自:返回的值除以应用程序运行的秒数)变化太大。 为SensorManager使用3个单独的侦听器可以提供更一致的结果吗?

0 个答案:

没有答案