Sto semplicemente cercando di attivare e disattivare la luminosità automatica. Ho iniziato con questo codice (all'interno del metodo onCreate)Come attivare e disattivare la luminosità automatica? (non una ripetizione)
final ToggleButton autoBrightToggle = (ToggleButton) findViewById(R.id.brightToggle);
// display auto brightness state
final ToggleButton autoBrightToggle = (ToggleButton) findViewById(R.id.autoToggle);
autoOnOrOff.setText(String.valueOf(getAutoBrightnessMode()));
autoBrightToggle.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (autoBrightToggle.isChecked()) {
setAutoBright(true);
} else {
setAutoBright(false);
}
}
}); // end anonymous OnClickListener function
// toggle the brightness mode
private void setAutoBright(boolean mode) {
if (mode) {
Settings.System.putInt(cr, SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
autoOnOrOff.setText(String.valueOf(getAutoBrightnessMode()));
} else {
Settings.System.putInt(cr, SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL);
autoOnOrOff.setText(String.valueOf(getAutoBrightnessMode()));
}
}
che non sembra funzionare. Il metodo setAutoBrightnessMode() viene anche chiamato di nuovo in onResume() ma con gli stessi non-risultati. Ad ogni modo, mi dispiace se qualcuno ritiene che questa domanda sia ridondante, ma gli altri post non mi hanno portato dove devo andare!
(FWIW - sto testando questo sul mio vecchio Droid X e il mio Galaxy Nexus, non l'Emulator)
CURA - aggiornamento su questo: Sono al 99% sicuro che ora che non sto vedendo alcun modifica la modalità Auto-Brightness riflessa nel pannello Impostazioni e nei widget del desktop - anche se in realtà potrei cambiare il suo valore. parte del problema è che non so esattamente come determinare se Auto-Brightness è acceso o no!
Ad esempio, lo schermo cambia rapidamente e visibilmente? Mi aspettavo cambiamenti visibili immediati della luminosità in base all'ambiente - ma forse i cambiamenti sono sottili? e per un periodo più lungo? o forse ci vogliono 30 secondi o più di cambiamenti ambientali prima che la luminosità cambi?
Qualcuno può suggerire come posso rintracciarlo? Ho provato a interrogare la costante Settings.System.SCREEN_BRIGHTNESS_MODE - collegare questo metodo fino ad un campo di testo:
private int getAutoBrightnessMode() {
try {
int brightnessMode = Settings.System.getInt(cr, SCREEN_BRIGHTNESS_MODE);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
int brightnessMode = -10000;
}
return brightnessMode;
}
ma si legge sempre 0, anche dopo un onResume(). : - ((
So che questa è una procedura semplice, ma sto provando a imparare questa roba per conto mio e non ho quasi mai avuto un addestramento CS formale ... Quindi tutto quello che posso dire è che sono molto frustrato da questo e sento come se io stesso ho lavorato in un angolo e, a questo punto io sono così infastidito non riesco a pensare più.
così aiuto sarebbe grande.
niente ?? Speravo fosse una cosa semplice! –
Suppongo che dovrai concedere le autorizzazioni appropriate nel manifest Android (ad esempio 'android.permission.WRITE_SETTINGS'). –
grazie - l'ho fatto. avrei dovuto dirlo. –