TL; DR
Wenn Sie noch Vibration auf alle Meldungen haben wollen , außer für Captive Portal (diese besondere Ausgabe) , ich fürchte , Sie können nicht .
Es ist , als dbasch im Kommentar erwähnt , dass die Schwingung (eigentlich die Meldung Alarm selbst) wurde in Eibisch hinzugefügt.
Technische Details
Wenn Android feststellt, dass sich das WLAN beim Captive-Portal anmelden muss, wird, wie Sie bereits bemerkt haben, eine Benachrichtigung erstellt. Es wird von setProvNotificationVisibleIntent()
Funktion in getan ConnectivityService
.
Anzeigen oder Ausblenden von Benachrichtigungen zur Netzwerkbereitstellung.
Wir verwenden Benachrichtigungen für zwei Zwecke: um zu benachrichtigen, dass für ein Netzwerk eine Anmeldung erforderlich ist ( NotificationType.SIGN_IN
), oder um zu benachrichtigen, dass ein Netzwerk keinen Internetzugang hat ( NotificationType.NO_INTERNET
). Wir zeigen höchstens eine Benachrichtigung pro ID an, sodass wir in einem bestimmten Netzwerk den Benachrichtigungstyp anzeigen können, der zuletzt angefordert wurde. Wenn beispielsweise ein Captive-Portal nicht innerhalb weniger Sekunden nach dem Herstellen der Verbindung antwortet, wird möglicherweise zuerst eine Meldung angezeigt NO_INTERNET
und nach Abschluss der Überprüfung des Captive-Portals eine Meldung angezeigt
SIGN_IN
.
Der relevante Code für die Benachrichtigung, die in Android 6.0 Marshmallow verwendet wird :
Notification notification = new Notification.Builder(mContext)
...
.setDefaults(Notification.DEFAULT_ALL)
...
Beachten Sie, dass Notification.DEFAULT_ALL
" alle Standardwerte verwendet werden (sofern zutreffend) ", was bedeutet, dass dies von der Benachrichtigungseinstellung Ihres Systems abhängt (Ton, Vibration und LED-Licht).
Im Vergleich zu Android 5.x Lollipop lautet der Code:
Notification notification = new Notification();
...
Nicht mehr und nicht weniger. Das ist der relevante Code. new Notification()
wird " ein Notification
Objekt mit Standardwerten erstellen ". Die Bedeutung scheint sich nicht zu ändern. Beachten Sie jedoch, dass sie defaults
nicht auf Notification.DEFAULT_ALL
(Wert: -1) gesetzt / initialisiert ist . Da es keine Initialisierung gibt, wird stattdessen standardmäßig 0 verwendet, was keine Warnung ist .
Ob es sich um einen von Google übersehenen Fehler handelt, der in Marshmallow behoben wurde, weiß ich nicht. Das ist auch der Grund, warum es in Android Lollipop keine Warnung gibt, aber jetzt gibt es in Android Marshmallow.