android 应用程序上的多个传感器
Multiple sensors on an android application
我目前正在开发一个使用多个传感器的 android 应用程序,我已经使用
mSensor= mySensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
在 OnCreate
方法中获取传感器,tv.setText("X: "+ sensorEvent.values[0] + ...);
在 onSensorChanged
方法中,在文本视图中显示加速度计值。
如何添加更多传感器并以相同方式显示它们的值?
当我说 sensorEvent.values[0]
时,程序如何知道我指的是哪个传感器?
提前感谢您的帮助,
玛雅
您需要使用 event.sensor.getType() 方法检查传感器值是否属于该类型的传感器。因此,如果您想访问磁力计和加速度计:
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] + ...);
}
}
}
我目前正在开发一个使用多个传感器的 android 应用程序,我已经使用
mSensor= mySensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
在 OnCreate
方法中获取传感器,tv.setText("X: "+ sensorEvent.values[0] + ...);
在 onSensorChanged
方法中,在文本视图中显示加速度计值。
如何添加更多传感器并以相同方式显示它们的值?
当我说 sensorEvent.values[0]
时,程序如何知道我指的是哪个传感器?
提前感谢您的帮助, 玛雅
您需要使用 event.sensor.getType() 方法检查传感器值是否属于该类型的传感器。因此,如果您想访问磁力计和加速度计:
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] + ...);
}
}
}