Несколько датчиков в приложении для Android

В настоящее время я разрабатываю приложение для Android, которое использует несколько датчиков, я использовал mSensor= mySensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); в OnCreate Способ получения датчика и tv.setText("X: "+ sensorEvent.values[0] + ...);в onSensorChanged метод, чтобы отобразить значения акселерометра в текстовом представлении.

Как я могу добавить больше датчиков и отображать их значения таким же образом? Как программа узнает, на какой датчик я ссылаюсь, когда говорю sensorEvent.values[0]?

Спасибо за любую помощь заранее, Майя

1 ответ

Решение

Вам нужно будет проверить, относятся ли значения датчика к датчику этого типа, с помощью метода 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] + ...);
        }
    }
}
Другие вопросы по тегам