Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SensorManager.registerListener-正在忽略采样周期_Android_Sensormanager - Fatal编程技术网

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微秒)(无论是否在库中执行)。尽管文档明确说明我们可以使用自定义值,但仍然存在这种情况:

两个连续事件之间所需的延迟,以微秒为单位这个 只是对系统的提示。接收事件的速度可能更快,也可能更慢 超过规定的比率。通常事件接收速度更快。可以是 传感器延迟正常,传感器延迟用户界面,传感器延迟游戏, 传感器延迟最快或以微秒为单位的延迟

注意重点——我理解这是一个“暗示”(不管它是什么意思),但它被完全忽略了

有人能告诉我这里发生了什么,并告诉我如何解决这个问题吗?我需要我注册的传感器按设定的间隔开火