Android应用程序上的多个传感器

我目前正在开发一个使用多个传感器的android应用程序,我使用过mSensor= mySensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);OnCreate方法中获取传感器和tv.setText("X: "+ sensorEvent.values[0] + ...);onSensorChanged方法中,在文本视图中显示加速度计值。

如何添加更多传感器并以相同方式显示其值? 当我说sensorEvent.values[0]时,程序将如何知道我指的是哪个传感器?

感谢您提前提供任何帮助,Maja

您需要使用event.sensor.getType()方法检查传感器值是否属于该类型的传感器。 因此,如果您想要同时访问Magnetometer和Accelerometer:

 sensorManager = (SensorManager) getActivity().getSystemService(Context.SENSOR_SERVICE); sensorAccelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sensorMagnetic = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD); sensorEventListener = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) { magnetic = event.values; tv.setText("X: "+ magnetic.values[0] + ...); } if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) gravity = event.values; tv2.setText(X: " + gravity.values[0] + ...); } } }