android-为什么我无法获得设备方向?

时间:2013-07-17 15:00:10

标签: java android

我想创建一个应用程序,当用户点击按钮时显示设备方向超过3轴,但结果总是0.0 | 0.0 | 0.0(无旋转),为什么?

 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 个答案:

答案 0 :(得分:1)

你喂的是错误的价值观。 mGravs是[0.0,0.0,0.0],mGeoMags也是如此。这些值应分别来自传感器TYPE_ACCELEROMETERTYPE_MAGNETIC_FIELD。 您可以使用这些传感器的SensorEvent返回的值。