Android 令人兴奋的机器人

Android 令人兴奋的机器人,android,rotation,orientation,Android,Rotation,Orientation,这是我的代码,如果有人愿意帮忙的话 我想显示方向值,但我得到的是0.0.0.0,所以我不知道发生了什么我不认为这是我的手机,因为它相当现代(HTC One V) 是否调用过getOrientation()?是的,IF过程中的最后一行“SensorManager.getOrientation(mRemapedRotationMatrix,mOrientation);”我的问题是它有没有打过电话?你怎么知道的?在该行上放置断点。到达它了吗?它被调用并保存值“[F@40d85c00“在横向模式下和纵向

这是我的代码,如果有人愿意帮忙的话

我想显示方向值,但我得到的是0.0.0.0,所以我不知道发生了什么我不认为这是我的手机,因为它相当现代(HTC One V)


是否调用过
getOrientation()
?是的,IF过程中的最后一行“SensorManager.getOrientation(mRemapedRotationMatrix,mOrientation);”我的问题是它有没有打过电话?你怎么知道的?在该行上放置断点。到达它了吗?它被调用并保存值“[F@40d85c00“在横向模式下和纵向模式下类似。但是,每次我向后更改时,值都会更改。
[F@40d85c00当处于横向模式时,纵向模式中有一个类似的值。
什么包含该值?什么意思,相似?纵向和横向模式中有一个不同的值?您看到的值不是该值,只是您正在查看的任何值的内存地址。使用调试器窗口查看该值。
 package ple.x75;


 import android.app.Activity;
 import android.content.Context;
 import android.content.pm.ActivityInfo;
 import android.hardware.Sensor;
 import android.hardware.SensorEvent;
 import android.hardware.SensorEventListener;
 import android.hardware.SensorManager;
 import android.os.Bundle;
 import android.widget.ImageView;
 import android.widget.TextView;
 import android.widget.Button;
 import android.view.View;




 public class MainActivity extends Activity
{


private ImageView img;
private SensorManager mSensorManager;
private float[] mAccelerometerReading;
private float[] mMagneticFieldReading;
private float[] mRotationMatrix = new float[16];
private float[] mRemapedRotationMatrix = new float[16];
private float[] mOrientation = new float[3];

// Register the event listener and sensor type.
public void setListners(SensorManager sensorManager, SensorEventListener mEventListener)
{
    sensorManager.registerListener(mEventListener, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
            SensorManager.SENSOR_DELAY_NORMAL);
    sensorManager.registerListener(mEventListener, sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
            SensorManager.SENSOR_DELAY_NORMAL);
}


public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    SensorManager sensorManager = (SensorManager) this.getSystemService(SENSOR_SERVICE);
    final Button btn_valider = (Button) findViewById(R.id.button);
    final TextView txt1 = (TextView) findViewById(R.id.textView);

    final SensorEventListener mEventListener = new SensorEventListener() {
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
        }
        public void onSensorChanged(SensorEvent event) {
            switch (event.sensor.getType()) {
                case Sensor.TYPE_ACCELEROMETER:
                    mAccelerometerReading = event.values.clone();
                    break;

                case Sensor.TYPE_MAGNETIC_FIELD:
                    mMagneticFieldReading = event.values.clone();
                    break;
            }
            if(mAccelerometerReading != null && mMagneticFieldReading != null &&
                    SensorManager.getRotationMatrix(mRotationMatrix, null, mAccelerometerReading, mMagneticFieldReading))
            {
                SensorManager.remapCoordinateSystem(mRotationMatrix,
                        SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, mRemapedRotationMatrix);
                SensorManager.getOrientation(mRemapedRotationMatrix, mOrientation);
            }

        };
    };
    setListners(sensorManager, mEventListener);
    btn_valider.setOnClickListener(new View.OnClickListener()
    {
        public void onClick(View view)
        {
            if(mOrientation != null)
            {
                final CharSequence test;
                test="Results: "+mOrientation[0]+" "+mOrientation[1]+" "+mOrientation[2];
                txt1.setText(test);
            }
            else{
                final CharSequence test;
                test="Results: Apparently Nothing...";
                txt1.setText(test);
            }
}
 });
}
}