Неправильные / рабочие значения акселерометра Android AVD - PullRequest
0 голосов
/ 12 декабря 2018

У меня проблема с использованием аппаратного акселерометра и устройства Android (WearOS) с использованием внутреннего эмулятора AVD студии android.

Моя задача на стороне кода (миры) следующая:

Сначала я создаю экземпляр SensorManager и выбираю необходимый датчик акселерометра:

this.sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
this.sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

Затем я устанавливаю слушателяждать изменения значения датчика:

this.sensorManager.registerListener(this, this.sensor, 50000);

(где 50000 означает (макс.) время в нас между значениями данных, но в действительности данные поступают намного быстрее, но это только кстати)

В методе изменения данных я получаю значения датчика акселерометра со следующими строками кода:

if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        float[] values = event.values;
        // contains the x value: values[0]
        // contains the y value: values[1]
        // contains the z value: values[2]
    }

Но если я запускаю AVD и моделирую акселероданные, как показано на рисунке:

Значения эмуляции виртуального датчика Полученные (измеренные) значения датчика при событии данных моего датчика в коде следующие:

x значение: 2.02553 и Значение y: 9.57736 и значение z: 9.57736 Значения направления x и y, как мне кажется, приемлемы, поскольку они идентичны сгенерированным значениям эмулятора (см. рисунок выше).Но проблема в том, что я не понимаю, почему значение z совпадает со значением y?Я действительно потратил много времени на поиск решения, но пока не нашел объяснения.

Может кто-нибудь помочь мне объяснить, в чем проблема или в чем проблема?

Спасибо большоемного, привет из Германии.Tobi

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...