Desactive la vibración para la notificación 'Iniciar sesión en la red WiFi'

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.?

Estoy sufriendo exactamente con el mismo problema. Busqué extensamente y parece ser un nuevo problema con v6.0. Muy, muy molesto.
Ninguna de las correcciones sugeridas a continuación funciona para mí. Uso el modo de prioridad para el uso previsto (por ejemplo, cuando estoy ocupado o durmiendo); No quiero que mi teléfono esté en modo de prioridad todo el tiempo. Y ninguna de las otras correcciones parece funcionar realmente (y la respuesta de Andrew T parece indicar por qué). ¿Hay una solución para una rom arraigada en stock? ¿Involucrando un módulo Xposed? ¿Se solucionará en versiones posteriores de Android?

Respuestas (5)

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:

  1. Sacrifica el uso previsto del modo de prioridad solamente, solo deja el silencio total como la única opción (sin embargo, si nunca tiene la intención de usar esta función, entonces tiene suerte ya que puede utilizarla).
  2. Si tiene muchas aplicaciones instaladas, es bastante tedioso configurar todas las aplicaciones para que traten sus notificaciones como prioridad (tal vez un script podría ayudar...). Además, cada vez que instale una nueva aplicación, no debe olvidar tratar su notificación como prioridad (a menos que no le importe su alerta).
  3. No recibirá ninguna alerta para todas las notificaciones del sistema Android (debe experimentar con esto, ya que no sé qué notificaciones considera el sistema Android).

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.


Detalles técnicos

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 mostrar NO_INTERNET, y luego, cuando se complete la verificación del portal cautivo, mostrar SIGN_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 Notificationobjeto con valores predeterminados ". Si bien parece que no hay cambios en el significado, tenga en cuenta que defaultsno 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.

"No puedes". Apuesto a que puedes con un módulo Xposed (o al menos una lectura preliminar me hace pensar esto), aunque uno podría tener que escribirlo uno mismo...

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.

Gracias por tu respuesta. Sin embargo, esto no parece funcionar, aún muestra una notificación y vibra incluso después de desactivar la opción 'Notificación de red'.
Esta solución tampoco funciona en mi Nexus 5.
Había probado esto en mi Moto X Pure y tampoco funciona allí.
Ni en mi Moto E segunda generación

Ajustes > Aplicaciones > Servicios de conectividad de Google > Notificaciones > Bloquear las desactiva por completo.

¡Gracias, (suponiendo que esto funcione)! Ahora solo necesito una forma de recordar que bloqueé esto cuando lo arreglaron...
Lamentablemente, esa suposición era incorrecta... no funcionó en mi Moto X Pure

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 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.