8 votos

Notificaciones de retraso

Estoy buscando una manera de retrasar las notificaciones en una base per-app a un umbral de tiempo específico.

Por ejemplo, no quiero recibir notificaciones de gmail más de una hora. No quiero notificaciones de mensajes de texto más de una vez por minuto.

Sé que hay aplicaciones individuales que proporcionan esto, pero estoy buscando algo que abarque todo el sistema y sea personalizable. Root es obviamente aceptable.

0 votos

¿Ha encontrado alguna forma de hacerlo correctamente?

2voto

Requist Puntos 160

Light Flow hará esto por ti. Cambia el sonido o la vibración de las aplicaciones individuales y configúralas en Light Flow. La opción "demasiadas notificaciones" puede usarse para seleccionar el máximo número de repeticiones.
El rooting no es necesario, excepto en algún teléfono para alterar las notificaciones de los LED.

La aplicación es capaz de ajustarse a todas las notificaciones o dependiendo de la aplicación: - sonido y volúmenes (absoluto o relativo) - vibración on / off o patrones - popups - pantalla en la notificación - El modo de suspensión basado en el tiempo o NFC - colores / patrones de leds o flash de la cámara - repetición de notificaciones y limitación de la tasa

Light Flow está disponible en la tienda de Google: https://play.google.com/store/apps/details?id=com.rageconsulting.Android.lightflow

0 votos

¿El flujo de luz realmente "retrasa" las notificaciones de las aplicaciones? Parece que se trata más bien de colores.

0 votos

@Bort: Hará la limitación de la tasa, y eso es lo que creo que quiere el que pregunta. Pero he añadido la funcionalidad principal del programa.

0 votos

Parece que la configuración que sugieres continuaría notificando al usuario cada x minutos para la misma notificación. Lo que significa que si configuro el SMS a un minuto, entonces mi teléfono vibrará cada minuto hasta que responda a la notificación, lo que resulta en más notificaciones que sin Light Flow. Dime si lo he entendido mal.

-3voto

Tomcat2 Puntos 1

Finalmente, después de una larga búsqueda en Internet y de probar consejos comunes como desactivar las optimizaciones de la batería, las notificaciones adaptativas y todas esas características que no ayudaron en absoluto, encontré el foro de XDA Developers donde finalmente llegué al fondo de este problema.

Este problema es causado por la funcionalidad llamada "DOZE", que está implementada en el núcleo de Android desde Android 6.

https://developer.Android.com/training/monitoring-device-state/doze-standby

Básicamente lo que hace es que trata de preservar la vida de la batería del teléfono de una manera muy agresiva que básicamente pone todas las aplicaciones y la actividad de la red en espera hasta que se produzca la ventana de mantenimiento. La ventana de mantenimiento es un período de tiempo muy corto en el que todos los eventos de las aplicaciones que esperan en la cola se procesan a la vez y luego pone todas las aplicaciones en espera de nuevo hasta que se produce la siguiente ventana de mantenimiento.

El problema es que con cada ventana de mantenimiento siguiente los intervalos entre esas ventanas aumentan cada vez hasta un límite largo. Así que si usted no ha tocado su teléfono durante un tiempo más largo, como media hora y el evento ocurre, obtendrá la notificación en la próxima ventana de mantenimiento que puede ser decenas de minutos desde ese momento.

No sé cómo Google puede actuar como si esto estuviera bien. No lo está. Para mí estaba causando serios problemas con mi aplicación de comercio de divisas que no muestra las alertas de precios en el tiempo cuando el evento ocurrió, pero como 5, 15, 30 minutos o incluso casi 1 hora más tarde !! que no es útil para mí porque la oportunidad para el comercio ya se había ido ...

Así que la solución es desactivar el "DOZE" en su teléfono manualmente utilizando los comandos ADB. Yo lo hice y funciona, ahora tengo notificaciones instantáneas. Por desgracia, esto tiene que hacerse cada vez después de reiniciar el teléfono, ya que se convierte en el DOZE de nuevo.

Aquí hay una página con más detalles:

https://stackoverflow.com/questions/40204605/Android-completely-disabling-deviceidle-doze-in-Android-m

Básicamente, sólo tienes que emitir este comando ADB: dumpsys deviceidle disable

También se puede poner la aplicación en la lista blanca de Doze pero no estoy seguro de que funcione, cuando desplegué la lista, me encontré con que mi app de comercio ya estaba allí, tal vez porque la eliminé de la política de ahorro de batería pero probablemente el Doze seguía suspendiendo todo por lo que funcionaba sólo en esos Windows de mantenimiento. Supongo que no utiliza esos "mensajes FCM de alta prioridad" descritos en la descripción de DOZE para forzar las notificaciones al instante.

Si no estás familiarizado con el ADB, aquí tienes algo de información:

https://developer.Android.com/studio/command-line/adb

Utilicé una aplicación de pago que permite la conexión local ADB desde el teléfono directamente, así puedo desactivar DOZE después de cada reinicio. Más información aquí:

https://forum.xda-developers.com/t/say-hello-to-ladb-a-local-adb-shell-without-needing-Root-or-a-computer.4204855/

Es muy triste que esta característica básica como son las notificaciones instantáneas tengan que ser arregladas a través de la interfaz de depuración de desarrolladores por el usuario en vez de por Google que podría arreglarlo en el propio SO...vergüenza de Google....

Más foros sobre este tema:

https://forum.xda-developers.com/t/psa-how-to-fix-the-notification-delay-or-non-receipt-issue-truly-pathetic-of-google-and-samsung.4276505/

https://forum.xda-developers.com/t/delayed-notification-problems-s21-ultra.4243105/page-5

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X