¿Cómo activar y desactivar el brillo automático? (No una repetición)
Simplemente intento activar y desactivar el brillo automático. Comencé con este código (dentro del método onCreate)
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 de nuevo en onResume () pero con los mismos no resultados. De todos modos, lo siento si alguien siente que esta pregunta es redundante, pero los otros puestos no me llegan a donde tengo que ir!
- ¿Cómo activar / desactivar los gps y los datos móviles en android mediante programación?
- ¿Cuáles son los pros y los contras de usar configChanges = "orientación" para dispositivos Android?
- Configuración de la aplicación de Android
- Configure: error: El compilador C no puede crear ejecutables al configurar para Android
- Programaticamente encontrar si la instalación de fuentes desconocidas se permite
(FWIW – estoy probando esto en mi viejo Droid X y mi Galaxy Nexus, no el emulador)
EDITADO – ACTUALIZACIÓN EN ESTO: Estoy 99% seguro ahora que no estoy viendo ningún cambio en el modo de Auto-Brillo reflejado en el panel de Configuración y widgets de escritorio – aunque realmente pueda estar cambiando su valor. Parte del problema es que no sé exactamente cómo determinar si Auto-Brillo está encendido o no!
Por ejemplo, ¿la pantalla cambia rápida y visiblemente? He estado esperando cambios inmediatos visibles en el brillo según el ambiente – pero quizás los cambios son sutiles? Y durante un período más largo? O tal vez toma 30 segundos o más de cambio de entorno antes de que cambie el brillo?
¿Puede alguien sugerir cómo puedo seguir esto? He intentado consultar la constante de Settings.System.SCREEN_BRIGHTNESS_MODE – enganchar este método hasta un textfield:
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 un onResume (). Unesdoc.unescobr
Sé que este es un procedimiento simple, pero estoy tratando de aprender estas cosas por mi cuenta, y no he tenido casi ningún entrenamiento CS formal … Así que todo lo que puedo decir es que estoy muy frustrado por esto y siento que ' He trabajado en un rincón y en este punto estoy tan molesto que no puedo pensar en línea recta más.
Así que la ayuda sería genial.
- Comprobación de la configuración de Acceso a la notificación de seguridad del sistema de Android mediante programación
- Lenguaje de actualización de Android en la actividad de preferencias
- ¿Por qué estoy recibiendo los detalles de ubicación en el idioma local?
- ¿Cómo puedo hacer que mi Cursor sobreviva a un cambio de orientación?
- ¿Dónde instalar Android SDK en Mac OS X?
- Ejecución instantánea en Android Studio 2.0 (cómo desactivar)
- Obtenga la configuración de NuPlayer en Android 5.0
- Cómo cambiar los dispositivos predeterminados de vista previa de diseño en Android Studio
Utilizo el siguiente enfoque en mi aplicación. Probado en HTC Desire HD y un par de tabletas noname chinese.
Añadir al permiso de manifiesto:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
Y utilice debajo del código para activar el brillo automático. Hay un truco en el código: tenemos que "actualizar" el brillo de la aplicación manualmente, ya que no cambia automáticamente. Puede ser que sea el problema en su caso.
void setAutoBrightness(boolean value) { if (value) { Settings.System.putInt(getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_AUTOMATIC); } else { Settings.System.putInt(getContentResolver(), SCREEN_BRIGHTNESS_MODE, SCREEN_BRIGHTNESS_MODE_MANUAL); } // After brightness change we need to "refresh" current app brightness if (isChecked) { refreshBrightness(-1); } else { refreshBrightness(getBrightnessLevel()); } } private void refreshBrightness(float brightness) { WindowManager.LayoutParams lp = getWindow().getAttributes(); if (brightness < 0) { lp.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE; } else { lp.screenBrightness = brightness; } getWindow().setAttributes(lp); } int getBrightnessLevel() { try { int value = Settings.System.getInt(getContentResolver(), SCREEN_BRIGHTNESS); // convert brightness level to range 0..1 value = value / 255; return value; } catch (SettingNotFoundException e) { return 0; } }
- Simplificación de un archivo Android.mk que crea múltiples ejecutables
- Robolectric 2.x + Maven en Jenkins falló con las dependencias APKLIB