2013-07-17 3 views
0

Я хочу сделать приложение, которое показывает ориентацию устройства на 3 оси, когда пользователь нажимает на кнопку, но результат всегда 0.0 | 0.0 | 0.0 (без вращения), почему?android - почему я не могу получить ориентацию устройства?

package com.example.newp; 

import android.app.Activity; 
import android.hardware.SensorManager; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Toast; 

public class FullscreenActivity extends Activity { 

@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.activity_fullscreen); 
} 

public void onButtonClick(View view) { 
    float[] mGravs = new float[3]; 
    float[] mGeoMags = new float[3]; 
    float[] mRotationM = new float[9]; 
    float[] mInclinationM = new float[9]; 
    float[] mOrientation = new float[3]; 
    SensorManager.getRotationMatrix(mRotationM, mInclinationM, mGravs, 
      mGeoMags); 
    SensorManager.getOrientation(mRotationM, mOrientation); 
    Toast.makeText(
      this, 
      String.valueOf(mOrientation[0]) + "|" 
        + String.valueOf(mOrientation[1]) + "|" 
        + String.valueOf(mOrientation[2]), Toast.LENGTH_LONG) 
      .show(); 
} 
} 

ответ

1

Вы питаетесь неправильными значениями. mGravs [0.0, 0.0, 0.0], а также mGeoMags. Эти значения должны исходить от датчиков TYPE_ACCELEROMETER и TYPE_MAGNETIC_FIELD соответственно. Вы можете использовать значения, возвращаемые SensorEvent этих датчиков.

Смежные вопросы