TL; DR
Si vous voulez toujours avoir des vibrations sur toutes les notifications, sauf pour le portail captif (ce problème particulier) , je crains que vous ne puissiez pas .
C'est comme dbasch mentionné dans le commentaire , que la vibration (en fait, l' alerte de notification elle-même) a été ajoutée dans Marshmallow.
Détails techniques
Lorsque Android détecte que le WiFi doit se connecter au portail captif, comme vous l'avez déjà remarqué, il crée une notification. Cela se fait par setProvNotificationVisibleIntent()
fonction dans ConnectivityService
.
Affichez ou masquez les notifications de configuration du réseau.
Nous utilisons les notifications à deux fins: pour signaler qu'un réseau nécessite une connexion ( NotificationType.SIGN_IN
), ou pour signaler qu'un réseau n'a pas accès à Internet ( NotificationType.NO_INTERNET
). Nous affichons au plus une notification par ID, donc sur un réseau particulier, nous pouvons afficher le type de notification le plus récemment demandé. Ainsi, par exemple, si un portail captif ne répond pas dans les quelques secondes suivant la connexion, nous pouvons d'abord afficher NO_INTERNET
, puis lorsque la vérification du portail captif est terminée, afficher
SIGN_IN
.
Code correspondant à l'alerte de notification utilisée dans Android 6.0 Marshmallow :
Notification notification = new Notification.Builder(mContext)
...
.setDefaults(Notification.DEFAULT_ALL)
...
Notez que Notification.DEFAULT_ALL
" utilise toutes les valeurs par défaut (le cas échéant) ", ce qui signifie que cela dépend du paramètre de notification de votre système (son, vibration et lumière LED).
Par rapport à celui d' Android 5.x Lollipop , le code est:
Notification notification = new Notification();
...
Ni plus ni moins. Voilà le code pertinent. new Notification()
va " construire un Notification
objet avec des valeurs par défaut ". Bien qu'il semble qu'il n'y ait aucun changement dans la signification, notez que ce defaults
n'est pas défini / initialisé à Notification.DEFAULT_ALL
(valeur: -1). Au lieu de cela, puisqu'il n'y a pas d'initialisation, il sera réglé par défaut sur 0, ce qui n'est pas une alerte .
Que ce soit un bug négligé par Google qui a été corrigé dans Marshmallow ou non, je ne sais pas. C'est également la raison pour laquelle il n'y a pas d'alerte dans Android Lollipop, mais maintenant il y en a dans Android Marshmallow.