Estoy simplemente tratando de activar y desactivar el brillo automático. empecé con este código (dentro del método onCreate)¿Cómo activar y desactivar el brillo automático? (no es una repetición)
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()));
}
}
Lo cual no parece funcionar. El método setAutoBrightnessMode() también se llama nuevamente en onResume() pero con los mismos no resultados. De todos modos, lo siento si alguien siente que esta pregunta es redundante, pero las otras publicaciones no me llevaron a donde tengo que ir.
(Fwiw - Estoy probando esto en mi viejo Droid X y mi Galaxy Nexus, no el emulador)
editado - ACTUALIZACIÓN EN ESTE: Estoy 99% seguro ahora que no estoy viendo ninguna cambia al modo de Brillo automático reflejado en el panel Configuraciones y widgets de escritorio - aunque De hecho, puedo estar cambiando su valor. parte del problema es que no sé exactamente cómo determinar si el brillo automático está activado o no.
Por ejemplo, ¿la pantalla cambia rápida y visiblemente? He estado esperando cambios inmediatos visibles en el brillo de acuerdo con el entorno, pero tal vez los cambios sean sutiles. y durante un período más largo? o tal vez tome 30 segundos o más de cambio en el entorno antes de que cambie el brillo?
¿Puede alguien sugerir cómo puedo rastrear esto? He intentado consultar la constante Settings.System.SCREEN_BRIGHTNESS_MODE - enganchando este método hasta un campo de texto:
private int getAutoBrightnessMode() {
try {
int brightnessMode = Settings.System.getInt(cr, SCREEN_BRIGHTNESS_MODE);
} catch (Settings.SettingNotFoundException e) {
e.printStackTrace();
int brightnessMode = -10000;
}
return brightnessMode;
}
Pero siempre lee 0, incluso después de una onResume(). : - ((
Sé que este es un procedimiento simple, pero estoy tratando de aprender esto por mi cuenta, y casi no he tenido entrenamiento formal en CS ... Así que todo lo que puedo decir es que soy muy frustrado por esto y siento que yo he trabajado en una esquina y en este momento estoy tan molesto que no puedo pensar con claridad más.
así ayuda sería grande.
nada ?? ¡Esperaba que esto fuera algo simple! –
Supongo que tendrás que otorgar los permisos apropiados en el manifiesto de Android (por ejemplo, 'android.permission.WRITE_SETTINGS') también. –
gracias - Hice eso. debería haber mencionado eso. –