Desde la actualización de Android 6.0 en Nexus 5, cada vez que recibo la notificación "Iniciar sesión en la red WiFi", el teléfono vibra. ¿Alguna idea de dónde puedo desactivar esto mientras mantengo la vibración para llamadas, SMS, mensajes de WhatsApp, etc.?
Hay una solución alternativa que involucra el modo de prioridad de No molestar .
En pocas palabras, solo debe usar Prioridad (desde Configuración rápida - No molestar ) ya que tiene una configuración por aplicación para alerta de notificación que puede sobrescribir la configuración predeterminada del sistema. El modo de solo prioridad seguirá mostrando todas las notificaciones. Sin embargo, solo se alertarán las notificaciones prioritarias (sonido, vibración y luz LED).
La idea es tratar todas las notificaciones como prioritarias (desde Configuración - Sonido y notificaciones - Notificaciones de aplicaciones - [nombre de la aplicación] - Tratar como prioritarias) excepto la notificación del portal cautivo, que se encuentra en la aplicación del sistema Android (de forma predeterminada, las aplicaciones del sistema no aparecen en la lista). Debe marcar Mostrar sistema en el menú adicional. Deje esta aplicación como no prioritaria, pero no se olvide del resto de aplicaciones del sistema).
Sin embargo, hay algunas desventajas que podría considerar primero antes de usar esta solución alternativa:
TL;DR
Si aún desea tener vibración en todas las notificaciones, excepto en el portal cautivo (este problema en particular) , me temo que no puede .
Es como dbasch mencionó en el comentario , que la vibración (en realidad, la alerta de notificación en sí) se agregó en Marshmallow.
Cuando Android detecta que el WiFi necesita iniciar sesión en el portal cautivo, como ya notó, creará una notificación. Se hace por setProvNotificationVisibleIntent()
función en ConnectivityService
.
Muestra u oculta las notificaciones de aprovisionamiento de red.
Usamos notificaciones para dos propósitos: para notificar que una red requiere inicio de sesión (
NotificationType.SIGN_IN
), o para notificar que una red no tiene acceso a Internet (NotificationType.NO_INTERNET
). Mostramos como máximo una notificación por ID, por lo que en una red en particular podemos mostrar el tipo de notificación que se solicitó más recientemente. Entonces, por ejemplo, si un portal cautivo no responde a los pocos segundos de conectarse, primero podemos mostrarNO_INTERNET
, y luego, cuando se complete la verificación del portal cautivo, mostrarSIGN_IN
.
El código relevante para la alerta de notificación que se utiliza en Android 6.0 Marshmallow :
Notification notification = new Notification.Builder(mContext)
...
.setDefaults(Notification.DEFAULT_ALL)
...
Tenga en cuenta que Notification.DEFAULT_ALL
" usará todos los valores predeterminados (cuando corresponda) ", lo que significa que depende de la configuración de notificación de su sistema (sonido, vibración y luz LED).
Comparado con el de Android 5.x Lollipop , el código es:
Notification notification = new Notification();
...
Ni mas ni menos. Ese es el código relevante. new Notification()
" construirá un Notification
objeto con valores predeterminados ". Si bien parece que no hay cambios en el significado, tenga en cuenta que defaults
no está configurado/inicializado en Notification.DEFAULT_ALL
(valor: -1). En su lugar, dado que no hay inicialización, se establecerá de forma predeterminada en 0, que no es una alerta .
Si es un error pasado por alto por Google que se ha corregido en Marshmallow o no, no lo sé. Además, esa es la razón por la que no hay alerta en Android Lollipop, pero ahora sí en Android Marshmallow.
La única forma que encontré para deshacerme de esa molesta vibración es deshabilitar por completo la notificación de 'wifi disponible'. Para hacerlo, vaya a configuración-> wifi -> toque los tres puntos verticales -> vaya a 'configuración avanzada' y deshabilite las notificaciones para redes wifi de acceso público. Esperando una solución, creo que es la única solución y no es una pérdida tan mala deshabilitarlos, siempre los pensé lo suficientemente inútiles.
Ajustes > Aplicaciones > Servicios de conectividad de Google > Notificaciones > Bloquear las desactiva por completo.
Esa notificación es iniciada por el Sistema Android ( android
). Puede usar aplicaciones para denegar al sistema Android el permiso para hacer vibrar el dispositivo en cualquier situación. Siempre que haya configurado adb en la PC, haga lo siguiente:
adb shell appops set android VIBRATE deny
Intente conectarse a una red Wi-Fi sin acceso a Internet. Todavía recibiría esa notificación pero sin vibración. Si también tiene la intención de ocultar esa notificación, puede seguir el resto de las respuestas publicadas aquí o en este sitio web.
Para revertir los cambios, haz lo siguiente:
adb shell appops set android VIBRATE allow
La aplicación Dialer inicia la vibración para llamar, para SMS sería su aplicación de SMS predeterminada, para mensajes de WhatsApp, es la misma aplicación, por lo que no se verán afectados. Puede haber consecuencias imprevistas de ese comando que desconozco, así que házmelo saber a través de los comentarios.
Nota: esta solución se prueba en una compilación CM13 no oficial.
dbasch
znt