我在这里遇到另一个 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 ...
}
}