我在这里遇到另一个Android连接问题。在我的测试应用程序中,我创建了简单的Service实现SensorEventListener来处理Accelerometer。
如果设备没有移动,此服务应该获得当前设备位置并且下次测试。我试着这样做(伪代码):
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 ...
}
}