Intereting Posts
Правильно обрабатывайте анимацию DrawerLayout при навигации по фрагменту Диаграмма классов API Android Как изменить активность запуска в android? Получить отпечаток сертификата от приложения android «MinifyEnabled» против «shrinkResources» – какая разница? И как получить сохраненное пространство? Как я могу получить свой рингтон, чтобы играть в андроид? Идентификация, если приложение существует, если не идти в магазин Захват видео с соотношением сторон 1: 1 на Android Несколько классов, расширяющих приложение Maven отказывается загружать aar упакованную зависимость из удаленного репозитория Как программно установить несколько imeOptions Поделиться в Facebook в android (как твиттер) Не удалось удалить оповещение на Android-леденец даже после нажатия уведомления даже после использования AUTOCANCEL Ошибка GINGERBREAD не может быть разрешена или не является полем BluetoothGattServer cancelConnection не отменяет соединение

Как предотвратить автоматическую блокировку экрана на андроиде по коду?

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

Как я могу предотвратить автоматическое блокирование экрана устройства?

Solutions Collecting From Web of "Как предотвратить автоматическую блокировку экрана на андроиде по коду?"

Вы должны объявить это использование – разрешение на AndroidManifest:

<uses-permission android:name="android.permission.WAKE_LOCK" /> 

И в вашем коде. Активность:

 PowerManager powerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Lock"); wakeLock.acquire(); 

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

 wakeLock.release(); 

Обычно предлагается вызвать метод получения внутри onResume () вашей активности и метод release в onPause () . Таким образом мы гарантируем, что наше приложение по-прежнему хорошо работает в случае приостановки или возобновления.

Другой способ сохранить блокировку экрана без необходимости запрашивать разрешение в самом явном виде:

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Выполняете ли вы длительный процесс загрузки в потоке пользовательского интерфейса? Что-то кажется неправильным – если процесс настолько длинный, что время блокировки экрана и ваш процесс заканчиваются, возможно, он должен пойти в фоновом режиме.

 KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); lock.disableKeyguard(); 

В androidmanifest:

 <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 

ИЛИ

Следуйте по этой ссылке

Один интересный вариант, который еще не упоминался, – это

 View#setKeepScreenOn(boolean onOff) 

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

Следующая строка позволяет вашему телефону быть включенным, когда приложение находится на переднем плане

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

Следующие инструкции позволяют отключить экран блокировки при нажатии кнопки блокировки. Класс KeyguardLock устарел на уровне API 13

 /*onCreate*/ KeyguardManager keyguardManager = (KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE); KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); // Deprecated :/ lock.disableKeyguard(); 

И в вашем манифесте:

 <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/> 

Идите с защитным кодом ключа, который он отлично работает,

Просто вставьте код в метод onCreate в свой файл mainactivity и разрешение в файле манифеста android