Android: держать экран включенным из виджета

#android

#Android

Вопрос:

У меня есть виджет главного экрана, и я хочу добавить функцию «сохранить экран включенным». Итак, как мне установить флаг «FLAG_KEEP_SCREEN_ON» из метода AppWidgetProvider.onReceive?

В рамках действия вы бы выполнили

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

но у меня под рукой есть только контекстный объект…

Комментарии:

1. могу я спросить, почему? В отличие от действий, которые пользователь может просто оставить, виджет является более постоянным и будет стоить пользователям срока службы батарей, если они не отключат его вручную. Это, конечно, приводит к плохим отзывам на рынке.

2. Да, вы можете. Это проект для беспроводного подключения вашего телефона к adb. Виджет представляет собой простую кнопку для включения и выключения соединения. Например, подсоединить кабель и выдернуть его.

Ответ №1:

Итак, как мне установить флаг «FLAG_KEEP_SCREEN_ON» из метода AppWidgetProvider.onReceive?

Вы не можете, извините. FLAG_KEEP_SCREEN_ON предназначен для использования в activities.

Ответ №2:

Вы можете попробовать следующее

android.provider.Настройки.System.putString(context.getContentResolver(), android.provider.Настройки.Система.SCREEN_OFF_TIMEOUT, «-1»);