0

ユーザーがボタンをクリックしているときにデバイスの向きを 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();
}
 }
4

1 に答える 1

1

あなたは間違った値を与えています。mGravs は [0.0, 0.0, 0.0] で、mGeoMags も同様です。これらの値は、センサーTYPE_ACCELEROMETERTYPE_MAGNETIC_FIELDそれぞれから取得する必要があります。SensorEventこれらのセンサーから返された値を使用できます。

于 2013-07-17T15:23:52.437 に答える