krapotkin Опубликовано 2 марта, 2016 Поделиться Опубликовано 2 марта, 2016 Нашел способ запретить программе гасить экран, пока она работает но способ одноразовый и выполняется только до старта Application Application.Initialize; {$IFDEF ANDROID} TAndroidHelper.Activity.getWindow.addFlags(TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON); {$ENDIF} Application.CreateForm(TStartForm, StartForm); Application.Run; можно ли сделать так, чтобы запрет работал только в одной форме программы, а все остальные работали бы штатно? Цитата Ссылка на комментарий
0 Модераторы Andrey Efimov Опубликовано 2 марта, 2016 Модераторы Поделиться Опубликовано 2 марта, 2016 Посмотрите Вариант 2 - Отключаем затухание и блокировку дисплея Цитата Ссылка на комментарий
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 6 марта, 2016 Модераторы Поделиться Опубликовано 6 марта, 2016 я использовал вот такой вариант в одной программе function GetScreenOffTimeout: integer; // Androidapi.JNI.Provider, FMX.Helpers.Android begin Result := 0; {$IFDEF ANDROID} Result := TJSettings_System.JavaClass.getInt(SharedActivityContext.getContentResolver, TJSettings_System.JavaClass.SCREEN_OFF_TIMEOUT, 15000); // 15 seconds is default is not found {$ENDIF} end; function SetScreenOffTimeout(ATimeOut: integer): Boolean; // Androidapi.JNI.Provider, FMX.Helpers.Android begin Result := false; {$IFDEF ANDROID} Result := TJSettings_System.JavaClass.putInt(SharedActivityContext.getContentResolver, TJSettings_System.JavaClass.SCREEN_OFF_TIMEOUT, ATimeOut); {$ENDIF} end; Rusland, krapotkin и Kitty 3 Цитата Ссылка на комментарий
0 krapotkin Опубликовано 11 марта, 2016 Автор Поделиться Опубликовано 11 марта, 2016 я сделал второй вариант, получил необычный эффект теперь у меня не засыпает, как обычно, в лок-скрин, но зато выводится какой-то типа приглушенный скрин сейвер с часами для продолжения работы надо ткнуть в экран это так и должно быть? Цитата Ссылка на комментарий
0 afors Опубликовано 29 апреля, 2017 Поделиться Опубликовано 29 апреля, 2017 @krapotkin у меня по второму варианту нет необычного эффекта, экран гасится. Но во всех случаях мне пришлось добавить модуль Androidapi.Helpers. Без него не запустилось. Цитата Ссылка на комментарий
0 ENERGY Опубликовано 2 мая, 2017 Поделиться Опубликовано 2 мая, 2017 (изменено) Вот вариант, его можно применять в любом месте (обычно в OnCreateForm), не обязательно в DPR. Флаг можно добавлять и удалять. Для обычного запрета выключать экран нужен только лишь флаг FLAG_KEEP_SCREEN_ON, остальные не нужны. Для Tokyo и возможно поздних версий, CallInUIThread не нужен. {$IFDEF ANDROID} procedure TurnOnAndKeepScreenAndroid(aEnable: boolean); var vFlags: integer; begin vFlags := TJWindowManager_LayoutParams.JavaClass.FLAG_TURN_SCREEN_ON or TJWindowManager_LayoutParams.JavaClass.FLAG_DISMISS_KEYGUARD or TJWindowManager_LayoutParams.JavaClass.FLAG_SHOW_WHEN_LOCKED or TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON; if aEnable then begin CallInUIThread ( // uses FMX.Helpers.Android procedure begin TAndroidHelper.Activity.getWindow.setFlags (vFlags, vFlags); end ); end else CallInUIThread ( procedure begin TAndroidHelper.Activity.getWindow.clearFlags (vFlags); end ); end; {$ENDIF} Изменено 2 мая, 2017 пользователем ENRGY ГоРыНыЧ, AngryOwl, Евгений Корепов и 1 другой 4 Цитата Ссылка на комментарий
Вопрос
krapotkin
Нашел способ запретить программе гасить экран, пока она работает
но способ одноразовый и выполняется только до старта Application
можно ли сделать так, чтобы запрет работал только в одной форме программы, а все остальные работали бы штатно?
Ссылка на комментарий
5 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.