gpt4 book ai didi

android - android中的onSensorChanged在模拟器中不断被触发

转载 作者:行者123 更新时间:2023-11-29 20:11:39 24 4
gpt4 key购买 nike

我正在使用 ACCELEROMETER 传感器并通过以下方式注册了一个监听器

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAcceleratorSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensorManager.registerListener(this, mAcceleratorSensor , SensorManager.SENSOR_DELAY_NORMAL);

这就是我的 onSensorChanged 的​​样子

@Override
public final void onSensorChanged(SensorEvent event) {
int sensorType = event.sensor.getType();
switch(sensorType){
case Sensor.TYPE_ACCELEROMETER:
float valueX = event.values[0];
float valueY = event.values[1];
float valueZ = event.values[2];
Log.d(TAG, "Sensor Changed value:"+valueX+":"+valueY+":"+valueZ);
break;

}

然而这是我在日志中看到的

01-12 02:01:18.063 19691-19691/com.taxis.locationupdates2 D/LocationActivity: Sensor Changed value:2.0:2.0:2.0
01-12 02:01:18.129 19691-19691/com.taxis.locationupdates2 D/LocationActivity: Sensor Changed value:2.0:2.0:2.0

即使值没有变化,它也会无限循环地调用 onSensorChanged。我还没有用真实的设备测试过它。是否有任何设置来控制它。

最佳答案

该方法的命名很糟糕。

来自 the android docs对于 onSensorChanged:

Called when there is a new sensor event. Note that "on changed" is somewhat of a misnomer, as this will also be called if we have a new reading from a sensor with the exact same sensor values (but a newer timestamp).

关于android - android中的onSensorChanged在模拟器中不断被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com