2012-09-26 2 views
2

Sensor.TYPE_ORIENTATION은 모바일에서 정상적으로 작동하지만 태블릿에서는 작동하지 않습니다.Android : 태블릿에서 방향 센서가 작동하지 않습니다.

List<Sensor> mySensors = mySensorManager.getSensorList(Sensor.TYPE_ORIENTATION); 

if(mySensors.size() > 0) 
{ 
    Toast.makeText(this, "Start ORIENTATION Sensor", Toast.LENGTH_LONG).show(); 
} 
else 
{ 
    Toast.makeText(this, "No ORIENTATION Sensor", Toast.LENGTH_LONG).show(); 
} 

누구든지 나를 도와 줄 수 있습니다.

답변

1

Sensor.TYPE_ORIENTATION 상수 is deprecated처럼 보입니다. 대신 SensorManager.getOrientation()을 사용하십시오.

+0

안녕 alexkorep, 감사 onSensorChanged. getOrientation을 사용했지만 태블릿에서는 작동하지 않습니다. getOrientation을 사용하여 Type_Orientation에 대한 몇 가지 예를 제안 해 주실 수 있습니까? – Maddy

0

저는 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); 
관련 문제