1

我在这里遇到另一个 Android 连接问题。在我的测试应用程序中,我创建了简单的服务实现 SensorEventListener 来处理加速度计。

如果设备没有移动,此服务应获取当前设备位置和下一次测试。我试着这样做(伪代码):

  onStart() {
    registerListener(listener, accelerometer, SENSOR_DELAY_UI);
    unregisterListener();
  }

Listener 是类子类,定义如下:

class DefaultValuesListener implements SensorEventListener {
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
    lastX = event.values[0];
    lastY = event.values[0];
    return;
    }
}

然后我在服务函数 onSensorChanged 中测试移动。我发现lastX并且lastY仍然等于零。位置未设置。

我知道我应该在设置默认值时进行测试,如果没有,则在 Services onSensorChanged 中设置它们,但这是最后可能的解决方案。

public void onSensorChanged(SensorEvent event) {
    if (!defaultPosSet) {
        lastX = event.values[0];
        lastY = event.values[0];
    } else {
        // DO test there ...
    }
}

有更好的吗?

编辑: 由于没有人回答这个问题,我将使用以下代码:

public void onSensorChanged(SensorEvent event) {
    if (!defaultPosSet) {
        lastX = event.values[0];
        lastY = event.values[0];
    } else {
        // DO test there ...
    }
}
4

0 回答 0