Как преобразовать данные датчика движения с Iphone на Android? - PullRequest
3 голосов
/ 11 августа 2010

У меня есть несколько образцов датчиков движения, которые были записаны с помощью Iphone. Теперь я в расчете расстояния между жестом пользователя и жестом, который был записан на Iphone.

Моя проблема в том, что данные датчика на Iphone представлены иначе, чем данные датчика Android. Если я не перемещаю Iphone, я получаю данные между -1 и 1, если я не перемещаю свое устройство Android, я получаю значения около 9, потому что датчик измеряет силу тяжести.

Я не мог понять, как преобразовать показания датчика Iphone, чтобы сравнить их с показаниями моего датчика Android. Данные датчика движения Android объясняются здесь . И документация Iphone содержит это pdf .

1 Ответ

2 голосов
/ 27 июля 2011

Я обнаружил ту же проблему при портировании приложения iPhone в Android.Я нашел одно решение.Это работа для моего приложения.Я надеюсь, что это поможет вам.

  1. Я обнаружил, что значение акселерометра iPhone составляет от -2,5 до +2,5.https://discussions.apple.com/thread/1743220?start=0&tstart=0
  2. Я обнаружил, что в классе датчиков Android есть метод для определения максимального значения.http://developer.android.com/reference/android/hardware/Sensor.html#getMaximumRange()

Теперь я поставил простой расчет, как показано ниже:

public void onSensorChanged(SensorEvent event) {
        float t = 2.5f / accMaxValue;
        Log.i(TAG,"onSensorChanged X "+ (event.values[0]*t) +"\t\t Y "+ (event.values[1]*t)+"\t\t Z "+ (event.values[2]*t) );
    }

Получить максимальное значение от датчика

    mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    accMaxValue = mAccelerometer.getMaximumRange();

Надеюсь, это поможет ...

...