Проблемы с датчиком Android при отключении USB - PullRequest
0 голосов
/ 20 ноября 2010

У меня возникла какая-то странная проблема с моим желанием HTC.

В настоящее время я тестирую некоторые вещи opengl, используя акселерометр и геомагнитные датчики.

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

я получил это на моем onSensorChanged ()

    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        gravity = event.values;
    } 
    if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
        geomagnetic = event.values;
    }

, и я не знаю почему, но когда я отключаю USB (к компьютеру), этостановится еще хуже (я использую эти значения, чтобы вращать камеру вокруг такого объекта, как карта неба, и когда я отключаю его от сети, это выглядит так, как будто значения верны примерно 1 раз в 2 секунды ~).

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

это не мое устройство, другая программа, такая как карта неба, работает нормально, но я не получаючто я делаю не такя никогда не смешивал два массива: гравитационный и геомагнитный, они глобальные и используются с SensorManager.getRotationMatrix (R, гравитационный, геомагнитный).

Мне интересно, не получаю ли я значения слишком быстро, нодаже если я определю SENSOR_DELAY_UI в слушателе, это та же самая история.

1 Ответ

1 голос
/ 22 ноября 2010

вздох я ....

gravity = event.values; указать на это. Простой цикл вроде:

for (int i=0 ; i<3 ; i++) {
            gravity[i] = event.values[i];
}

и все нормально (почему я всегда находил решения, спрашивая где-то ...)

...