저는 SensorManager.getOrientation()을 전화기에서도 작동하지만 타블렛에서는 작동하지 않았습니다.
float[] mGravity;
float[] mGeomagnetic;
float RR[] = new float[9];
float I[] = new float[9];
float orientation[] = new float[3];
SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
Sensor mMageneticField = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
mSensorManager.registerListener(this,mAccelerometer,SensorManager.SENSOR_DELAY_NORMAL);
mSensorManager.registerListener(this,mMageneticField,SensorManager.SENSOR_DELAY_NORMAL);
// 내부는 귀하의 회신
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER)
{
mGravity = event.values.clone();
}
if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD)
{
mGeomagnetic = event.values.clone();
}
SensorManager.getRotationMatrix(RR, I, mGravity, mGeomagnetic);
SensorManager.getOrientation(RR, orientation);
azimuth = orientation[0];
pitch = orientation[1];
roll = orientation[2];
System.out.println("Pitch " + pitch);
안녕 alexkorep, 감사 onSensorChanged. getOrientation을 사용했지만 태블릿에서는 작동하지 않습니다. getOrientation을 사용하여 Type_Orientation에 대한 몇 가지 예를 제안 해 주실 수 있습니까? – Maddy