2010-12-28 15 views

risposta

-1

di tronchi con questo - http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness

è possibile modificare la luminosità

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

riferimento anche Hamiora risposta per ulteriori spiegazioni.

+1

Ciao! Voglio ottenere ma non impostare la luminosità. – yuankai

+3

hi, float savedBrightness = settings.screenBrightness; non è possibile ottenere la luminosità corrente ma se è sovrascritta dall'app, e la provo ma ottengo sempre -1.0f da essa, perché non la sovrascrivo! – yuankai

+0

@yuankai È necessario eseguire un ulteriore controllo. Se il tuo 'SavedBrightness' <0 significa che l'applicazione utilizza la luminosità predefinita. Il livello di luminosità predefinito può essere recuperato dalla risposta di MidhunVP. (tieni a mente che 'settings.screenBrightness 'va da 0f a 1f mentre l'impostazione del sistema ha valori da 0 a 255) –

13

Hi per ottenere il livello di luminosità corrente del sistema Android è possibile utilizzare questo codice:

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

No, legge le impostazioni correnti di luminosità, non la luminosità corrente. – greenoldman

+1

@greenoldman Questo è vero. La luminosità attuale può essere recuperata da 'getWindow(). GetAttributes(). ScreenBrightness'. Se tuttavia questa luminosità attuale è <0, significa che l'applicazione utilizza le impostazioni correnti per la luminosità (che può essere caricata con i mezzi forniti nella risposta corrente) –

+0

'getInt()' Metodo restituisce Int value.But Brightness store come float.Better per usare 'getFloat()' – Elshan

1

Questo è stato chiesto qualche tempo fa, ma solo per ampliare la risposta di finzione:

settings.screenBrightness restituirà -1 se non è stato precedentemente sovrascritto nel codice. Questo è un comportamento corretto poiché l'impostazione dello schermo da Luminosità a -1 imposterà la luminosità sul livello di luminosità del sistema corrente.

Questa luminosità del sistema può essere modificata dall'utente in qualsiasi momento, quindi non è molto utile archiviare il valore effettivo, se si sta solo cercando di riportare la luminosità al suo valore originale, poiché il valore effettivo potrebbe essere "obsoleto".

4

Si può leggere il contenuto di questo file system

/sys/class/LED/LCD-retroilluminazione/luminosità

Questo valore è la luminosità dello schermo corrente nel range 0-255

Problemi correlati