Пустой экран при восстановлении экрана Яркость Android - PullRequest
3 голосов
/ 22 июля 2011

** Обратите внимание, я просто пытаюсь выключить дисплей. Если у вас есть лучший способ сделать это, пожалуйста, предложите это:

Я использую

params.screenBrightness = 0;
getWindow().setAttributes(params);

и

params.flags |= LayoutParams.FLAG_KEEP_SCREEN_ON;
params.screenBrightness = -1;
getWindow().setAttributes(params);

для включения / выключения дисплея. Когда я снова включаю экран, я получаю пустой экран с включенной подсветкой.

Есть идеи, почему это происходит? Спасибо Mike

Ответы [ 4 ]

2 голосов
/ 28 июля 2011

Несмотря на незначительные изменения, попробуйте поставить в конце букву «F» следующим образом:

params.screenBrightness = 0F;
getWindow().setAttributes(params);

Если это не поможет устранить проблему, возможно, обновление экрана может сработать, вернувэкран с настройками по умолчанию.Я провел небольшое исследование и нашел этот код, который может работать при обновлении экрана:

this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN, WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

Кроме того, вы можете попробовать включить телефон с помощью wakelock powermanager:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
// Wakes the screen on.
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP, AudioControlExtender.this.getClass().getName());
wl.acquire();

Иесли это не сработает, включите экран так, как вы это делаете сейчас, и сделайте следующее:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
// Sets the screen on maximum brightness.
// This might fix the problem you are having with the screen brightness since
// the screen settings are changed.
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, AudioControlExtender.this.getClass().getName());
wl.acquire();
1 голос
/ 30 июля 2011

Лучший способ заставить это работать - это PowerManager.goToSleep (время);

Таким образом, вы можете контролировать (если хотите), как долго вы хотите, чтобы устройство спало, вы можететакже используйте PowerManager.isScreenOn (), чтобы определить, было ли оно снова включено.

Вам придется настроить WakeLock, если вы еще не ... довольно просто, просто выполните

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
    wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, "GLGame");  

и с этого момента вы можете использовать powerManager.goToSleep

EDIT

, убедитесь, что вы освободили WakeLock и получили их в своих методах onPause и onResume!

1 голос
/ 29 июля 2011

Если вы пытаетесь отключить дисплей, вы пробовали
PowerManager.goToSleep()?
Проверьте дополнительную информацию на http://developer.android.com/reference/android/os/PowerManager.html#goToSleep(long)

0 голосов
/ 24 июля 2011

Яркость экрана варьируется от 0 до 1, в то время как -1, который вы используете, - для «предпочтительной» яркости.Сначала попробуйте использовать 1 и посмотрите, работает ли это, поскольку -1 может просто сохранять то, что было ранее установлено.

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