Saltar al contenido

Android: ¿cómo evitar que el brillo llegue al máximo cuando aparece la ventana emergente de batería baja?

Solución:

La automatización es la opción preferida, o más bien la única opción en este caso, ya que el sistema operativo Android no ofrece ninguna configuración para los requisitos citados.

Hay muchas aplicaciones disponibles. Prefiero usar MacroDroid, ya que es gratis (hasta 5 macros) y fácil de aprender.

MacroDroid crea y ejecuta Macros automatizar

Una macro consta de lo siguiente (elaborando la ayuda de la aplicación):

Desencadenar

Eventos que ocurren en el dispositivo (por ejemplo, SMS entrantes, auriculares insertados). Se evalúan varios desencadenantes para lógico (OR) – lo que significa que cualquiera de las condiciones de activación cumplidas dispararía macro

Comportamiento

Una acción que el dispositivo puede realizar (por ejemplo, establecer un fondo de pantalla, tomar una foto)

Restricciones

Una restricción que debe cumplirse para que se active el disparador (por ejemplo, día de la semana, nivel de batería). Se evalúan múltiples restricciones para lógico (Y) – lo que significa que todas las restricciones deben cumplirse para disparar el disparador

Notas sobre la solución ofrecida

  1. Probado en KitKat. No visualizo ningún problema con versiones superiores de Android

  2. No se puede “leer” cuando aparece la indicación de nivel de batería bajo, pero para esta macro se supone que es del 15%. Puede ver el nivel de la batería en su tableta y, en consecuencia, ajustar la macro

  3. No requiere root

  4. Esta solución no aborda la explicación del sistema Android para el brillo alto / bajo y cómo se activan

Ajustes del sistema

  1. No Greenify MacroDroid y excluirlo de los asesinos de tareas, si los usa.

  2. Habilite MacroDroid en “Auto Protect” (teléfonos Huawei) o “Modo Stamina” (teléfonos Sony o “Power Nap” (módulo Stamina Mode Xposed para dispositivos que no sean Sony). Además, si actualiza a Marshmallow en el futuro, excluya MacroDroid de Doze Consulte esto: ¿Hay alguna forma de excluir una aplicación de Doze?

Estas funciones evitan que las aplicaciones estén activas cuando el dispositivo no está activo, lo que ahorra batería. Puede que no sea pertinente para su teléfono, pero agregue esto como precaución general.

  1. Habilite MacroDroid en la configuración de accesibilidad y también permítalo como administrador del dispositivo en la configuración de seguridad.

  2. Para Lollipop, habilite el acceso a las notificaciones desde la configuración de notificaciones


tl; dr: Tu macro se vería así

Desencadenar:

Nivel de bateriadisminuye a → (elija porcentaje por escala móvil o 15%)

Comportamiento:

  • Brillo0 (Elija en escala móvil, no requiere raíz)
  • Espere antes de la siguiente acción → establecer en 10 segundos (recomendado para separar las acciones anteriores y siguientes, asegurando que ambas sucedan)
  • Pantalla tenueAtenuador encendido → 10% (Elija En escala móvil: no requiere root, si la acción anterior no es lo suficientemente buena para usted – esto es similar a aplicaciones de “filtro de pantalla” como Darker)

Restricciones:

Ninguno (Macro siempre corre)


Macro de prueba

Nombre y guarde la macro y desde el menú de 3 botones en el lado derecho

  • Acciones de prueba: Para ver cómo se comporta la macro en cada acción sin referencia a las condiciones de activación / restricción

  • Macro de prueba: Para ver cómo se comporta la macro como se esperaba
    (con referencia a disparador / acción / restricciones, es decir, macro como un todo)

Solución de problemas

Macro no se ejecuta en absoluto– En la mayoría de los casos, se debe a que no se aplica la configuración correcta del sistema. Para verificar esto, desde la opción de ayuda de 3 botones en la interfaz principal de la aplicación, seleccione Registro del sistema y vea si su macro se había ejecutado cuando se activó. Si el nombre de su macro no figura, vuelva a verificar la configuración del sistema

Nota: la solución a continuación requiere que su Android esté rooteado.


Creo que la automatización sin root no resolvería directamente el problema, ya que no está cambiando ni anulando nada, sino haciendo sus propias cosas sobre los cambios existentes. Estaba a punto de publicar en líneas similares hasta que me di cuenta de que la clave de la solución es un archivo llamado max_brightness, un archivo debajo /sys, por lo tanto, una parte del kernel de Linux y administrado directamente por él. Descubrí que establecer el límite de brillo en ese archivo es la mejor manera de hacerlo. Puede no estar de acuerdo con una mejor solución.

Noté que una vez que se establece su brillo máximo personalizado, ni Android ni una aplicación pudieron establecer el brillo más allá de ese nivel personalizado a menos que cambiaran el contenido de ese archivo, lo que a menudo una aplicación no tiene razón para hacerlo y ninguno de ellos cambió tampoco. Además, el archivo es propiedad de root y es parte del grupo root, por lo que cualquier aplicación o incluso system_server requeriría privilegios de root para realizar cambios en ese archivo.

Encontrar ese archivo es un poco complicado. En mi dispositivo MTK con Android 4.2, ese archivo parece estar debajo /sys/devices/platform/leds-mt65xx/leds/lcd-backlight/.

En mi dispositivo Qualcomm con Android 5.0.2 y superior, el archivo parecía estar en /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/.

Supongo que la mejor manera de encontrar ese archivo es ejecutar una consulta de búsqueda (configurar adb para eso), como:

(Requiere busybox)

adb shell su -c 'find /sys/ -type f -iname "max_brightness"'

En mi dispositivo Qualcomm, la salida que da es:

/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/red/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/blue/max_brightness
/sys/devices/f9924000.i2c/i2c-2/2-0068/leds/green/max_brightness
/sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/max_brightness
/sys/devices/qcom,camera-led-flash.81/leds/torch-light/max_brightness
/sys/devices/msm_sdcc.1/leds/mmc0::/max_brightness
/sys/devices/msm_sdcc.2/leds/mmc1::/max_brightness
/sys/devices/01-qcom,leds-d300/leds/led:flash_torch/max_brightness
/sys/devices/01-qcom,leds-d300/leds/led:flash_0/max_brightness
/sys/devices/01-qcom,leds-d300/leds/led:flash_1/max_brightness
/sys/devices/01-qcom,leds-e200/leds/kpdbl-lut-2/max_brightness
/sys/devices/01-qcom,leds-e200/leds/kpdbl-pwm-3/max_brightness
/sys/devices/01-qcom,leds-e200/leds/kpdbl-pwm-4/max_brightness
/sys/devices/01-qcom,leds-e200/leds/button-backlight/max_brightness

El lugar donde lcd-backlight Se menciona fue el único que tenía sentido para mí y así es como encontré el archivo en mi dispositivo. No se preocupe preguntando por los demás. Intenté cambiar el brillo de la pantalla y busqué los cambios en el archivo llamado brightness (también ubicado debajo de dichas ubicaciones). Ninguno de ellos reflejó la salida correcta que no sea la de /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight.

Solo para demostración, intente establecer un límite en max_brightness

adb shell su -c 'echo LIMIT > PATH_TO_MAX_BRIGHTNESS'   # in my case PATH_TO_MAX_BRIGHTNESS is /sys/devices/mdp.0/qcom,mdss_fb_primary.168/leds/lcd-backlight/ and set LIMIT to a value less than 30 (not limited to). 

Ahora intente maximizar el brillo usando el control deslizante de brillo o una aplicación de terceros y notará que el brillo de su pantalla no excede un cierto punto, incluso cuando el control deslizante o la configuración de la aplicación parecen estar al máximo. El brillo para ese “cierto punto” ciertamente sería menor que el predeterminado al que está acostumbrado.

Nota que el valor máximo en max_brightness a menudo se encuentra en 255 y el brillo varía de 0 a 255. A menudo, eso es, no siempre es cierto. Y No tema establecer el límite en 0. Podría provocar que la pantalla no se encienda hasta que revierte los cambios o reinicie el dispositivo.

Encuentre un límite que no le moleste mientras duerme o que agote la batería en gran medida cuando la batería se agote.


Automatización

Para la automatización, use cualquier aplicación de automatización que pueda ejecutar un comando con privilegios de root y cuando se cumpla el contexto de su activador preferido. Recomiendo un disparador basado en el tiempo.

Algunos ejemplos de trabajo:

  • En Tasker, configure un perfil con su contexto preferido, cree una tarea y use la acción: Código → Ejecutar Shell:

    • Mando: echo LIMIT > PATH_TO_MAX_BRIGHTNESS
    • check Usar raíz
  • En MacroDroid, configure su disparador preferido y para la acción instale Configuración segura, elíjala → Acciones → Ejecutar comando:

    • Mando: echo LIMIT > PATH_TO_MAX_BRIGHTNESS
    • check Usar raíz
  • En Automatizar, como parte de su flujo, al configurar una acción para su activador, seleccione Superusuario de comandos de shell en Aplicaciones y haga:

    • Línea de comando: echo LIMIT > PATH_TO_MAX_BRIGHTNESS

    Asegúrese de instalar todos los permisos que requiere el flujo.

  • En DroidAutomation, configure su disparador y en la tarea, seleccione Root → Ejecutar una línea de comando y escriba: echo LIMIT > PATH_TO_MAX_BRIGHTNESS

Como habrás adivinado, deberías configurar dos perfiles para cada aplicación. Uno para configurar un límite y el otro para establecer el brillo máximo al predeterminado al que está acostumbrado.

Activadores explícitos de batería baja:

  • Tasker

    • Estado → Nivel de batería → establecer el rango
    • Alternativa: Evento → Sistema → Intención recibida → deje todo intacto pero establezca la Acción en android.intent.action.BATTERY_LOW.
  • MacroDroid

    Siga la respuesta de beeshayms para configurar el gatillo

  • Automatizar

    Vaya a Aplicaciones → Recepción de transmisión → deje todo intacto pero seleccione Batería baja en Acción

  • Automatización de droides

    Seleccione Batería baja en Agregar un disparador


Me gustaría que mantener esto en consideración que usar una batería baja o un disparador de batería al 100% anularía el propósito de esta respuesta, que es anular los cambios que Android desea realizar. Por ejemplo, si configura LIMIT en 0 cuando la batería alcanza el 100%, lo que sucedería es que su Android iluminaría la pantalla al máximo como de costumbre y en pocos milisegundos (leyó correctamente) su aplicación de automatización se ejecutaría y establecería el límite. Su sueño puede verse interrumpido en esos milisegundos.

En otra situación, cuando el sistema transmite la intención de batería baja, la tableta de Cool Guy puede terminar con una pantalla iluminada al máximo y en unos pocos milisegundos, el brillo volvería a caer al LÍMITE.

La solución alternativa es configurar el nivel de la batería en 16 o más para el disparador de batería baja y 99 o menos para la carga completa de la batería.

Intente usar una aplicación llamada Filtro de pantalla. PRECAUCIÓN: No configure el brillo por debajo de 17 porque no puede ver nada. Puedes enviar mensajes de texto por la noche y la persona sentada a tu lado ni siquiera verá

Si te ha sido de utilidad este post, te agradeceríamos que lo compartas con otros juniors así nos ayudas a difundir este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *