Android 4.1 bietet dem Benutzer ein Kontrollkästchen zum Deaktivieren von Benachrichtigungen für eine bestimmte Anwendung.
Als Entwickler können wir jedoch nicht feststellen, ob ein Benachrichtigungsaufruf effektiv war oder nicht.
Ich muss wirklich überprüfen, ob die Benachrichtigungen für die aktuelle Anwendung deaktiviert sind, aber ich kann keine Einstellung dafür in der API finden.
Gibt es jemals eine Möglichkeit, diese Einstellung im Code zu überprüfen?
android
android-notifications
android-notification-bar
Guillaume Perrot
quelle
quelle
Antworten:
Sie können nicht 100% können nicht.
In diesem Google I / O 2012-Video wird danach gefragt, und der Projektleiter für die neuen Benachrichtigungen erklärt, dass dies nicht möglich ist.
Bearbeiten
Update 2016: Jetzt können Sie es überprüfen, wie in diesem Google I / O 2016-Video erwähnt .
Verwenden Sie
NotificationManagerCompat.areNotificationsEnabled()
in der Support-Bibliothek, um zu überprüfen, ob Benachrichtigungen auf API 19+ blockiert sind. Die Versionen unter API 19 geben true zurück (Benachrichtigungen sind aktiviert).quelle
NotificationManagerCompat.from(ctx).areNotificationsEnabled()
Eigentlich ist das ziemlich einfach:
quelle
Die Antwort von @blundell ist korrekt, aber in neueren Versionen gibt es eine geringfügige Änderung.
quelle
Wenn Sie Xamarin verwenden und diese Antwort benötigen, können Sie diesen Code verwenden:
quelle
Es scheint, dass es keine Möglichkeit gibt, den Benachrichtigungsstatus abzufragen.
Ich empfehle dies:
Nicht 100% korrekt. Dies gibt aber eine Meinung.
Wenn der Benutzer beispielsweise 10 bis 15 Tage lang nicht auf eine App-Benachrichtigung klickt, hat er diese wahrscheinlich deaktiviert
quelle
Ich verwende diese Methode, um zu überprüfen, ob die Benachrichtigungen aktiviert sind oder nicht. Die oben genannten Methoden funktionieren, um zu überprüfen, ob Benachrichtigungen aktiviert sind oder nicht. Ab Android 8 müssen wir jedoch zum Erstellen von Benachrichtigungen zuerst einen Kanal erstellen. Ab Oreo müssen wir also überprüfen, ob Ihr Benachrichtigungskanal aktiviert ist oder nicht .
quelle