我正在尝试从 android 手机传感器中读取值。我初始化传感器如下:
private void sensorInit() {
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_FASTEST);
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE),
SensorManager.SENSOR_DELAY_FASTEST);
sensorManager.registerListener(this,
sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
SensorManager.SENSOR_DELAY_FASTEST);
}
然后我可以获得约 350 个样本/秒。
但后来为了省电,我希望放慢速度。所以我将 SensorManager.SENSOR_DELAY_FASTEST 修改为 1000。我希望传感器延迟为 1000 毫秒。但显然它不起作用,因为我仍然获得约 350 个样本/秒的速率。
从安卓页面:
public boolean registerListener (SensorListener listener, int sensors, int rate, Handler handler)
参数
listener:传感器监听对象
传感器:要注册的传感器的位掩码
速率:事件的速率。这只是对系统的提示。事件的接收速度可能比指定的速率快或慢。通常会更快地接收到事件。该值必须是 SENSOR_DELAY_NORMAL、SENSOR_DELAY_UI、SENSOR_DELAY_GAME 或 SENSOR_DELAY_FASTEST 之一。或者,事件之间的所需延迟(以微秒为单位)。以微秒为单位指定延迟仅适用于 Android 2.3(API 级别 9)以后。对于早期版本,您必须使用 SENSOR_DELAY_* 常量之一。
handler:传感器事件将被传递到的 Handler。
任何人都可以帮助我吗?
我怎样才能真正减慢传感器采样速度以节省电力?提前致谢。