2010-12-28 18 views

Odpowiedz

-1

Acording do tego - http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness

można zmienić jasność przez

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

Patrz także Hamiora odpowiedź na dalsze wyjaśnienia.

+1

Cześć! Chcę uzyskać, ale nie ustawić jasności. – yuankai

+3

hi, float savedBrightness = settings.screenBrightness; nie mogę uzyskać aktualnej jasności, ale czy jest ona nadpisywana przez aplikację, i próbuję tego, ale zawsze otrzymuję od niej -1,0f, ponieważ jej nie zmieniam! – yuankai

+0

@yuankai Powinieneś wykonać dodatkową kontrolę. Jeśli "savedBrightness" <0 oznacza, że ​​aplikacja używa domyślnej jasności. Domyślny poziom jasności można uzyskać za pomocą odpowiedzi MidhunVP. (należy pamiętać, że 'settings.screenBrightness' wynosi od 0f do 1f, podczas gdy ustawienie systemu ma wartości od 0 do 255) –

13

Cześć aby uzyskać aktualny poziom jasności systemu Android można użyć tego kodu:

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

Nie, odczytuje bieżące ustawienia jasności, a nie aktualną jasność. – greenoldman

+1

@greenoldman To prawda. Bieżąca jasność może być odzyskana przez 'getWindow(). GetAttributes(). ScreenBrightness'. Jeśli jednak ta aktualna jasność jest <0, oznacza to, że aplikacja używa aktualnych ustawień jasności (którą można załadować za pomocą środków dostarczonych w bieżącej odpowiedzi) –

+0

'getInt()' Powrót wartości metody Int.But Zachowanie jasności jako float.Better aby użyć 'getFloat()' – Elshan

1

ten zapytał jakiś czas temu, ale po prostu, aby rozwinąć na fikcję za odpowiedź:

settings.screenBrightness zwróci -1, jeśli nie zostało wcześniej nadpisane w kodzie. To jest prawidłowe zachowanie, ponieważ ustawienie ekranuBrightness na -1 ustawi jasność na bieżący systemowy poziom jasności.

Ta jasność systemu może zostać zmieniona przez użytkownika w dowolnym momencie, więc prawdopodobnie nie ma sensu przechowywanie rzeczywistej wartości, jeśli próbujesz przywrócić jasność do pierwotnej wartości, ponieważ może to być rzeczywista wartość "przeterminowany".

4

można odczytać zawartość tego pliku systemowego

/sys/class/diody LED/LCD-podświetlenie/jasność

wartość ta jest aktualna jasność ekranu w zasięgu 0-255

Powiązane problemy