2015-10-20 10 views
0

Я пытаюсь получить значения вращения оси z с помощью гироскопа в Android, я хочу просто отобразить градусы, по которым телефон поворачивается вокруг оси z на экране. Поэтому, если я держу телефон вертикально с экраном, обращенным ко мне, и поверните его на 90 градусов вправо, пока экран все еще смотрит на меня, я хочу, чтобы он показывал 90 градусов на экране.Как получить значения вращения для одной оси с помощью гироскопа Android?

код у меня до сих пор является довольно простым, но я не могу показаться, чтобы найти примеры вращающихся только на одной оси:

У меня есть вид текста, который просто печатает данные из onSensorChanged()

mySensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); 
List<Sensor> mySensors = mySensorManager.getSensorList(Sensor.TYPE_GYROSCOPE); 

if(mySensors.size() > 0){ 
mySensorManager.registerListener(mySensorEventListener, mySensors.get(0), SensorManager.SENSOR_DELAY_UI); 
} 

private SensorEventListener mySensorEventListener = new SensorEventListener() { 

    @Override 
    public void onSensorChanged(SensorEvent event) { 

     textviewX.setText("X-Rotation: " + String.valueOf(event.values[0])); 
     textviewY.setText("Y-Rotation " + String.valueOf(event.values[1])); 
     textviewZ.setText("Z-Rotation " + String.valueOf(event.values[2])); 
    } 

    @Override 
    public void onAccuracyChanged(Sensor sensor, int accuracy) { 
    } 
}; 

данные оси г он печатает, когда я повернуть телефон на оси просто переключается между 0, -0, 1 и 2, в случайном порядке, как телефон вращается. Может кто-нибудь помочь мне здесь? Благодарю.

ответ

0

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

Вам необходимо учитывать гравитацию и точность.

См documentation

EDIT: Я пропустил тот факт, что вам нужно угловое, а не линейное движение.

Руководство по-прежнему применяется.

+0

также смотрите здесь ... http://stackoverflow.com/questions/13679568/using-android-gyroscope-instead-of-accelerometer-i-find-lots-of-bits-and-pieces – Nostradamus