В моем приложении мне нужно убедиться, что экран устройства Android остается включенным, когда пользователь нажимает кнопку. Когда пользователь нажимает другую кнопку, я хочу, чтобы экран выключался, как обычно. Для этого мне нужно позвонить: getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
В документации Android указано, что этот вызов должен быть сделан из действия, что я и сделал. Вот мой фрагмент кода:
public class AndroidDataProvider implements DataProvider {
@Override
public void keepScreenOn(boolean flag) {
if(flag) {
Window window = FXActivity.getInstance().getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
else {
Window window = FXActivity.getInstance().getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}
}
Когда я запускаю этот код на своих Samsung Galaxy S5 и S6, я получаю исключение. Код для включения экрана работает, когда я запускаю его изначально в студии Android, так что это не проблема. Любая идея, как заставить эту функцию работать? блокировка пробуждения не будет работать, потому что мне нужно включать и отключать эту функцию на основе событий пользовательского интерфейса.