我想同时访问方向和加速度传感器。这样做的正确方法是什么?
我在用
public class MainActivity extends Activity
{
private SensorManager sensorManager;
private Sensor sensor;
private Sensor sensor2;
private float x, y, z;
private float x1, y1, z1;
private String output;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
sensor = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
sensor2 = sensorManager.getSensorList(Sensor.TYPE_ORIENTATION).get(0);
}
private void refreshDisplay() {
output = String.format(";%f;%f;%f;%f;%f;%f", x, y, z, x1, y1, z1);
}
@Override
protected void onResume() {
super.onResume();
sensorManager.registerListener(accelerationListener, sensor,
SensorManager.SENSOR_DELAY_GAME);
sensorManager.registerListener(orientationListener, sensor2,
SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
sensorManager.unregisterListener(accelerationListener);
sensorManager.unregisterListener(orientationListener);
super.onStop();
}
private SensorEventListener accelerationListener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor sensor, int acc) {
}
@Override
public void onSensorChanged(SensorEvent event) {
x = event.values[0];
y = event.values[1];
z = event.values[2];
refreshDisplay();
}
};
private SensorEventListener orientationListener = new SensorEventListener() {
@Override
public void onAccuracyChanged(Sensor sensor, int acc) {
}
@Override
public void onSensorChanged(SensorEvent event) {
x1 = event.values[0];
y1 = event.values[1];
z1 = event.values[2];
refreshDisplay();
}
};
}
但这是波涛汹涌的。仅使用传感器或加速度计是平稳的。
编辑:暂停