从android加速度计获取倾斜角度

use*_*888 9 android angle accelerometer tilt

我有一个实现的类,SensorEventListener我想tilt Angle用我的设备Accelerometer.

我在互联网上查找了一些例子但他们使用了 Sensor.TYPE_MAGNETIC_FIELD.

我相信我的设备没有这个传感器,因为当我进行以下检查时
manager.getSensorList(Sensor.TYPE_ACCELEROMETER).size(),我得到.

有没有办法tilt Angle通过使用 Sensor.TYPE_ACCELEROMETER值来获得?

And*_*azy 1

尝试这个,

SensorManager sensorManager = (SensorManager) this.getSystemService(SENSOR_SERVICE);        

        final SensorEventListener mEventListener = new SensorEventListener() {
            public void onAccuracyChanged(Sensor sensor, int accuracy) {
            }


            public void onSensorChanged(SensorEvent event) {
                // TODO Auto-generated method stub
                switch (event.sensor.getType()) {
                case Sensor.TYPE_ACCELEROMETER:
                    System.arraycopy(event.values, 0, mValuesAccel, 0, 3);
                    break;

                case Sensor.TYPE_MAGNETIC_FIELD:
                    System.arraycopy(event.values, 0, mValuesMagnet, 0, 3);
                    break;
                }
            };
        };

        setListners(sensorManager, mEventListener);

SensorManager.getRotationMatrix(mRotationMatrix, null, mValuesAccel, mValuesMagnet);
                SensorManager.getOrientation(mRotationMatrix, mValuesOrientation);
                final CharSequence test;
                test = ","+mValuesOrientation[0] +","+mValuesOrientation[1]+ ","+ mValuesOrientation[2];
Run Code Online (Sandbox Code Playgroud)

  • 我有同样的问题。我测试的大多数设备都具有这两种功能,并且代码运行得很好,但是这个混蛋设备只有加速度计,所以我必须以某种方式只使用它。 (2认同)