Отключение клавиатуры блокирует портретную ориентацию экрана - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть приложение тревоги, где я активирую активную тревогу от приемника вещания, который был запущен диспетчером тревоги.

Так, чтобы разбудить устройство и разблокировать экран, я использую этот код измой широковещательный приемник перед запуском действия:

KeyguardManager.KeyguardLock lock = ((KeyguardManager) context.getSystemService(KEYGUARD_SERVICE)).newKeyguardLock(KEYGUARD_SERVICE);
        PowerManager powerManager = ((PowerManager) context.getSystemService(POWER_SERVICE));
        PowerManager.WakeLock wake = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, FULL_WAKE_UP);
        lock.disableKeyguard();
        wake.acquire();

и это объявление моей активности в манифесте:

<activity
            android:name=".activities.ActiveAlarmActivity"
            android:launchMode= "singleTask"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:theme="@style/Theme.AppCompat.Light.NoActionBar.FullScreen"
            android:windowSoftInputMode="stateHidden|adjustResize"></activity>

и внутри своей деятельности я использую следующий код:

baseAppCompatActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
            | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
            | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
            | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
            | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
    );

Итак, как вы можете видеть, моя деятельность поддерживает все ориентации, однако, когда я использую специально эту строку:

lock.disableKeyguard();

моя активность блокируется только в портретном режиме, и ориентация не меняется при изменениифизическая ориентация.

Нужно ли мне в любом случае отключить защиту клавиатуры?

Пока я включаю устройство только с помощью диспетчера питания, тогда использую WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD в моей деятельности, если это будет сделаноработа для показа моей деятельности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...