我想创建一个应用程序,当用户点击按钮时显示设备方向超过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();
}
}
答案 0 :(得分:1)
你喂的是错误的价值观。 mGravs是[0.0,0.0,0.0],mGeoMags也是如此。这些值应分别来自传感器TYPE_ACCELEROMETER
和TYPE_MAGNETIC_FIELD
。
您可以使用这些传感器的SensorEvent
返回的值。