Depuis la mise à jour d'Android 6.0 sur le Nexus 5, chaque fois que je reçois la notification "Se connecter à un réseau WiFi", le téléphone vibre. Avez-vous une idée de l'endroit où je peux désactiver cette fonction tout en conservant la vibration pour les appels, les SMS, les messages WhatsApp, etc.
Réponses
Trop de publicités?Il existe une solution de contournement impliquant Ne pas déranger Priorité uniquement mode.
Pour faire simple, vous devez utiliser Priorité uniquement (de Paramètres rapides - Ne pas déranger ) car il a un paramètre par application pour l'alerte de notification qui peut écraser le paramètre par défaut du système. Le mode Priorité uniquement affiche toujours toutes les notifications. Cependant, seules les notifications prioritaires seront alertées (son, vibration et lumière LED).
L'idée est de traiter toutes les notifications comme prioritaires (de Paramètres - Son et notification - Notifications d'applications - [nom de l'application] - Traiter en priorité) à l'exception de la notification du portail captif, qui est sous Système Android app (par défaut, les apps système ne sont pas listées. Vous devez cocher Système d'affichage à partir du menu de débordement. Laissez cette application comme non prioritaire, mais n'oubliez pas le reste des applications du système).
Cependant, il y a quelques inconvénients que vous devriez considérer avant d'utiliser cette solution de contournement :
- Vous sacrifiez l'utilisation prévue du mode Priorité uniquement, ne laissant que le silence total comme seule option (cependant, si vous n'avez jamais l'intention d'utiliser cette fonction, alors vous avez de la chance puisque vous pouvez l'utiliser).
- Si vous avez beaucoup d'applications installées, il est assez fastidieux de configurer toutes les applications pour qu'elles traitent leurs notifications en priorité (un script pourrait peut-être aider...). De plus, chaque fois que vous installez une nouvelle application, vous ne devez pas oublier de traiter sa notification en priorité (à moins que vous ne vous souciiez pas de son alerte).
- Vous ne recevrez pas d'alertes pour toutes les notifications provenant du système Android (vous devez expérimenter avec ceci, puisque je ne sais pas quelles notifications sont considérées par le système Android).
TL;DR
Si vous voulez toujours avoir la vibration sur toutes les notifications sauf pour le portail captif (ce problème particulier) J'ai peur. vous ne pouvez pas .
C'est comme dbasch a mentionné dans le commentaire que la vibration (en fait, la notification alerte ) a été ajouté dans Marshmallow.
Détails techniques
Lorsqu'Android détecte que le WiFi doit se connecter au portail captif, comme vous l'avez déjà remarqué, il crée une notification. C'est fait par setProvNotificationVisibleIntent()
fonction dans ConnectivityService
.
Afficher ou masquer les notifications de provisionnement du réseau.
Nous utilisons les notifications à deux fins : pour signaler qu'un réseau nécessite une connexion (
NotificationType.SIGN_IN
), ou pour notifier qu'un réseau n'a pas accès à l'Internet (NotificationType.NO_INTERNET
). Nous affichons au maximum une notification par ID, donc sur une réseau particulier, nous pouvons afficher le type de notification qui a été demandé le plus récemment. Ainsi, par exemple, si un portail captif ne répond pas dans les quelques secondes suivant la connexion, nous pouvons pourrait d'abord afficherNO_INTERNET
puis, lorsque la vérification du portail captif est terminée, affichezSIGN_IN
.
Le code pertinent pour l'alerte de notification qui est utilisée dans Android 6.0 Marshmallow :
Notification notification = new Notification.Builder(mContext)
...
.setDefaults(Notification.DEFAULT_ALL)
...
Notez que Notification.DEFAULT_ALL
volonté " utiliser toutes les valeurs par défaut (le cas échéant) "Cela signifie qu'il dépend des paramètres de notification de votre système (son, vibration et voyant lumineux).
Comparé à celui de Android 5.x Lollipop le code est :
Notification notification = new Notification();
...
Ni plus, ni moins. C'est le code pertinent. new Notification()
volonté " construire un Notification
objet avec des valeurs par défaut ". Bien qu'il semble qu'il n'y ait pas de changement dans le sens, notez que defaults
n'est pas défini/initialisé à Notification.DEFAULT_ALL
(valeur : -1). Au lieu de cela, puisqu'il n'y a pas d'initialisation, la valeur par défaut sera 0, ce qui est pas d'alerte .
Je ne sais pas si c'est un bug négligé par Google qui a été corrigé dans Marshmallow ou non. C'est aussi la raison pour laquelle il n'y a pas d'alerte dans Android Lollipop, mais maintenant il y en a une dans Android Marshmallow.
Le seul moyen que j'ai trouvé pour me débarrasser de cette vibration gênante est de désactiver complètement la notification "wifi disponible". Pour ce faire, allez dans les paramètres-> wifi -> appuyez sur les trois points verticaux -> allez dans les 'paramètres avancés' et désactivez les notifications pour les réseaux wifi accessibles au public. En attendant un correctif, je pense que c'est la seule solution et ce n'est pas une si mauvaise perte que ça de les désactiver, je les ai toujours trouvées assez inutiles.
Cette notification est initiée par le système Android ( android
). Vous pouvez utiliser appops pour refuser au système Android l'autorisation de faire vibrer l'appareil dans n'importe quelle situation. À condition que vous ayez adb installation dans le PC, faire :
adb shell appops set android VIBRATE deny
Essayez de vous connecter à un Wi-Fi sans accès à Internet. Vous recevrez toujours cette notification, mais sans vibration. Si vous souhaitez également masquer cette notification, vous pouvez suivre les autres réponses publiées ici ou sur ce site Web.
Pour annuler les changements, faites :
adb shell appops set android VIBRATE allow
La vibration pour les appels est déclenchée par l'application Dialer, pour les SMS, il s'agit de votre application SMS par défaut, pour les messages WhatsApp, c'est la même application, donc ils ne seront pas affectés. Il peut y avoir des conséquences imprévues de cette commande dont je ne suis pas au courant, alors faites-moi en part dans les commentaires.
Nota: cette solution est testée sur une version non officielle de CM13.