2016-05-26 3 views
1

У меня есть приложение, которое заставляет вращение экрана на ландшафт (внешнее приложение контролирования устройства через АБР)вращение Android-экран обнаружения

У меня есть другое приложение работает на устройстве, которые должны определять текущую ориентацию (портрет/ландшафт, отменить или не имеет значения) и что-то делать, когда меняется ориентация экрана устройства. Я написал OrientationEventListener, который хорошо работает:

m_orientationEventListener = new OrientationEventListener(this) { 
    @Override 
    public void onOrientationChanged(int orientation) { 
     doSomething() 
    } 
}; 
m_orientationEventListener.enable(); 

Моя проблема: Когда экран погаснет, а затем на фондовый диск поворачивать экран в портретный, пока экран не был разблокирован. ** Я не получаю событие, когда экран поворачивается на портреты и не поворачивается назад к пейзажу после разблокировки **

Любой способ прослушать это?

Примечание: что у меня нет активности на экране: я бег в фоновом режиме и хочу, чтобы обнаружить его от фона.

Спасибо за вашу помощь

+1

использование SensorEventListener. –

ответ

1

Спасибо + Сатнам Singh

Вот пример кода я использовал:

m_sensorEventListener = new SensorEventListener() { 
    @Override 
    public void onSensorChanged(SensorEvent event) { 
     if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { 
      Log.i(TAG,"Orientation : PORTRAIT"); 
     } 
     else { 
      Log.i(TAG,"Orientation : LANDSCAPE"); 
     } 
    } 

    @Override 
    public void onAccuracyChanged(Sensor sensor, int accuracy) {} 
}; 

SensorManager sm = (SensorManager)getSystemService(SENSOR_SERVICE); 
sm.registerListener(m_sensorEventListener, sm.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR), SensorManager.SENSOR_DELAY_NORMAL); 

Я добавил статус экрана (ON/OFF) BroadcastReceiver к выключите мой слушатель, когда экран погаснет и избежит нежелательного потребления энергии.

 Смежные вопросы

  • Нет связанных вопросов^_^