gpt4 book ai didi

java - 后台服务中的 sensorManager.registerListener

转载 作者:太空狗 更新时间:2023-10-29 14:59:30 26 4
gpt4 key购买 nike

我有一个为 Cordova 应用程序编写的 Android 后台服务,我想通过 sensorManager 与加速度计进行交互。

我觉得我已经很接近了,但我认为还不够。

出于某种原因,sensorManager.registerListener 似乎没有触发 onSensorChanged 方法 - 我每 5 秒检查一次来自 MyService(我的后台服务类)的 X 值。

根据我的阅读,这与需要对 registerListener 的句柄有关,但我不确定......是什么或如何。

这是我的代码(为了便于阅读而删减):

    class AccelListener implements SensorEventListener
{

public AccelListener(Context ctx) {
mCtx = ctx;
sensorManager = (SensorManager) mCtx.getSystemService(Context.SENSOR_SERVICE);
}

public int start() {
List<Sensor> list = this.sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);

if ((list != null) && (list.size() > 0)) {
this.mSensor = list.get(0);
this.sensorManager.registerListener(this, this.mSensor, SensorManager.SENSOR_DELAY_UI);
}

return this.status;
}

public void onSensorChanged(SensorEvent event) {


if (this.accuracy >= SensorManager.SENSOR_STATUS_ACCURACY_MEDIUM) {
this.timestamp = System.currentTimeMillis();
this.x = event.values[0];
this.y = event.values[1];
this.z = event.values[2];
}
}
}

public class MyService extends BackgroundService
{

protected JSONObject doWork() {
JSONObject result = new JSONObject();
Context thisContext = getApplicationContext();
AccelListener objAccel = new AccelListener(thisContext);
int intAccelReturn = objAccel.start();
setInterval(function()
{
result.put("OUTPUT", objAccel.x);
},5000);

}

非常感谢任何帮助。

谢谢

哦。

最佳答案

另一个区别

List<Sensor> list= 
this.sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
if ((list != null) && (list.size() > 0)) {
this.mSensor = list.get(0);
this.sensorManager.registerListener(this, this.mSensor,
SensorManager.SENSOR_DELAY_UI);
}

this.mSensor = this.sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_UI);

是否在第二个示例中引用了 DefaultSensor 而不是列表中的任何传感器。您确定索引 0 处的传感器实例就是您要引用的那个吗?

BR

关于java - 后台服务中的 sensorManager.registerListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28223754/

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