Android SensorManager.registerListener-正在忽略采样周期
免责声明:有很多这样的例子。他们都没有回答我的问题 我正试图使我的传感器Android SensorManager.registerListener-正在忽略采样周期,android,sensormanager,Android,Sensormanager,免责声明:有很多这样的例子。他们都没有回答我的问题 我正试图使我的传感器onsensorchange事件每X秒触发一次 这是我的密码: static long delay1 = 0; public void sensorTester(){ SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); final Sensor sensor = sensorManage
onsensorchange
事件每X秒触发一次
这是我的密码:
static long delay1 = 0;
public void sensorTester(){
SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
final Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
SensorEventListener sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
long delay2 = System.nanoTime();
long totaldelay = (delay2-delay1) / 1000000;
Log.e(TAG, "DELAY from sensor: "+ totaldelay);
delay1 = delay2;
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
};
sensorManager.registerListener(sensorEventListener, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}
以上方法很好<代码>总延迟打印为约60毫秒
这里的第一个问题是,只有SensorManager.SENSOR\u DELAY\u faster
(~3ms注册)似乎起到了作用。每隔一个选项会导致onSensorChanged
每隔60毫秒触发一次
第二个问题是,如果我用上述代码创建一个库,将库(.aar)包含在我的项目中并运行它,totaldelay
总是以+-3ms的速度出现;没有其他选择能起到作用
最后一个问题是完全忽略设置自定义值(例如50000000微秒)(无论是否在库中执行)。尽管文档明确说明我们可以使用自定义值,但仍然存在这种情况:
两个连续事件之间所需的延迟,以微秒为单位这个
只是对系统的提示。接收事件的速度可能更快,也可能更慢
超过规定的比率。通常事件接收速度更快。可以是
传感器延迟正常,传感器延迟用户界面,传感器延迟游戏,
传感器延迟最快或以微秒为单位的延迟
注意重点——我理解这是一个“暗示”(不管它是什么意思),但它被完全忽略了
有人能告诉我这里发生了什么,并告诉我如何解决这个问题吗?我需要我注册的传感器按设定的间隔开火