2010-12-28 2 views
7

Как получить яркость текущего экрана в коде Android dynamiclly?Как получить яркость текущего экрана в Android-коде динамически?

+2

возможный дубликат [Добавление элементов управления яркостью экрана в приложение android] (http://stackoverflow.com/questions/1791340/adding-screen-brightness-controls-to-android-application) –

+0

У вас есть способ его получить? – User9527

ответ

-1

Acording к этому - http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness

вы можете изменить яркость по

WindowManager.LayoutParams settings = getWindow().getAttributes(); 
settings.screenBrightness = newValue; 
getWindow().setAttributes(settings); 

Также см Hamiora ответ для дальнейшего объяснения.

+1

Привет! Я хочу получить, но не установить яркость. – yuankai

+3

hi, float savedBrightness = settings.screenBrightness; не может получить текущую яркость, но переопределяется ли приложение, и я пытаюсь это сделать, но всегда получаю -1.0f от него, потому что я не переопределяю его! – yuankai

+0

@yuankai Вы должны выполнить дополнительную проверку. Если ваш 'savedBrightness' <0 означает, что приложение использует яркость по умолчанию. Уровень яркости по умолчанию можно получить по ответу MidhunVP. (просто имейте в виду, что 'settings.screenBrightness' варьируется от 0f до 1f, тогда как системная настройка имеет значения от 0 до 255) –

13

Привет, чтобы получить текущий уровень яркости андроида системы вы можете использовать этот код:

try { 
    float curBrightnessValue=android.provider.Settings.System.getInt(
    getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS); 
} catch (SettingNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+5

Нет, он считывает текущие настройки яркости, а не текущую яркость. – greenoldman

+1

@greenoldman Это правда. Текущую яркость можно получить с помощью 'getWindow(). GetAttributes(). ScreenBrightness'. Если, однако, эта текущая яркость <0, это означает, что приложение использует текущие настройки яркости (которые могут быть загружены средствами, предоставленными в текущем ответе). –

+0

'getInt()' Метод возвращает значение Int. Но Brightness сохраняет как float.Better использовать 'getFloat()' – Elshan

1

Это был задан некоторое время назад, но только расширить свое присутствие на ответ фантастике:

settings.screenBrightness будет возвращать -1, если он ранее не был перезаписан в коде. Это правильное поведение, так как настройка экранаBrightness на -1 устанавливает яркость на текущий уровень яркости системы.

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

4

Вы можете прочитать содержимое этого системного файла

/SYS/класс/светодиоды/ЖК-подсветка/яркость

Это значение тока яркость экрана в диапазоне 0-255

Смежные вопросы