Как я могу изменить яркость экрана Android? - PullRequest
3 голосов
/ 01 июня 2011

Мне удалось изменить яркость экрана в деятельности (и, соответственно, во всем приложении), используя следующий код:

Settings.System.putFloat(this.getContentResolver(),Settings.System.SCREEN_BRIGHTNESS, ((float)LocationService.settings.screenBrightness));

WindowManager.LayoutParams lp = getWindow().getAttributes();
float brightness = someValue;
lp.screenBrightness = brightness;
getWindow().setAttributes(lp);

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

Спасибо!

Ответы [ 4 ]

0 голосов
/ 15 июля 2015

Предоставьте разрешение в androidMainfest.xml

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

И предоставить целое число от 0 до 255

//number>=0 && number<=255
//If you have passed context then you can use context.getContentResolver()
android.provider.Settings.System.putInt(cgetContentResolver(),
            android.provider.Settings.System.SCREEN_BRIGHTNESS,
            number);
0 голосов
/ 22 октября 2012

Попробуйте это

Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);

int brightnessLevel = 255;
Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, brightnessLevel);

Вам понадобится набор разрешений WRITE_SETTINGS в вашем AndroidManifest.xml

http://android -er.blogspot.com / 2011/02 / переключающая система экран яркость-using.html

0 голосов
/ 22 октября 2012

Приложение настроек делает это так:

private static final int MINIMUM_BACKLIGHT = android.os.Power.BRIGHTNESS_DIM + 10;
private static final int MAXIMUM_BACKLIGHT = android.os.Power.BRIGHTNESS_ON;

System.putInt(getContext().getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, value + MINIMUM_BACKLIGHT);

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

0 голосов
/ 15 июня 2011

Здесь, возможно, вам помогут:

WindowManager.LayoutParams layoutParams = getWindow().getAttributes();  
layoutParams.buttonBrightness = value;
getWindow().setAttributes(layoutParams);
...