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 puedes.
Como dbasch mencionó en el comentario, la vibración (en realidad, la notificación de alerta en sí) se agregó en Marshmallow.
Detalles Técnicos
Cuando Android detecta que el WiFi necesita iniciar sesión en un portal cautivo, como ya habrás notado, creará una notificación. Esto se hace con la función setProvNotificationVisibleIntent()
en ConnectivityService
.
Mostrar u ocultar notificaciones de aprovisionamiento de red.
Usamos notificaciones para dos propósitos: notificar que una red requiere iniciar sesión (NotificationType.SIGN_IN
), o 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. Por ejemplo, si un portal cautivo no responde después de unos segundos de conectarse, podríamos mostrar primero 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)
...
Observa que Notification.DEFAULT_ALL
"usará todos los valores predeterminados (cuando sea aplicable)", lo que significa que depende de la configuración de notificaciones de tu sistema (sonido, vibración y luz LED).
Comparado con el de Android 5.x Lollipop, el código es:
Notification notification = new Notification();
...
Nada más, nada menos. Ese es el código relevante. new Notification()
"construirá un objeto Notification
con valores predeterminados". Aunque parezca que no hay cambios en el significado, ten en cuenta que defaults
no se establece/inicializa en Notification.DEFAULT_ALL
(valor: -1). En su lugar, como no hay inicialización, se establecerá por defecto en 0, lo que significa sin alerta.
No sé si se trata de un error pasado por alto por Google que ha sido corregido en Marshmallow o no. También, esa es la razón por la que no hay alerta en Android Lollipop, pero ahora sí la hay en Android Marshmallow.
4 votos
Estoy sufriendo con el mismo problema exacto. He buscado ampliamente y parece ser un nuevo problema con v6.0. Muy, muy molesto.
1 votos
Ninguna de las soluciones sugeridas a continuación funciona para mí. Utilizo el modo Prioridad para su uso previsto (por ejemplo, cuando estoy ocupado o durmiendo); no quiero tener mi teléfono en modo Prioridad todo el tiempo. Y ninguna de las otras soluciones parece funcionar realmente (y la respuesta de Andrew T parece indicar por qué). ¿Existe alguna solución para una ROM rooteada de stock? ¿Involucra un módulo de Xposed? ¿Se solucionará en versiones posteriores de Android?