Android 4.1 oferuje użytkownikowi pole wyboru umożliwiające wyłączenie powiadomień dla określonej aplikacji.
Jednak jako programista nie mamy możliwości sprawdzenia, czy wezwanie do powiadomienia było skuteczne, czy nie.
Naprawdę muszę sprawdzić, czy powiadomienia są wyłączone dla bieżącej aplikacji, ale nie mogę znaleźć żadnego ustawienia w interfejsie API.
Czy istnieje sposób, aby sprawdzić to ustawienie w kodzie?
android
android-notifications
android-notification-bar
Guillaume Perrot
źródło
źródło
Odpowiedzi:
Nie możesz w 100% nie.
Zostało to poproszone w tym filmie Google I / O 2012, a kierownik projektu dla nowych powiadomień deklaruje, że nie możesz.
Edytować
Aktualizacja 2016: Teraz możesz to sprawdzić, jak powiedziano w tym filmie Google I / O 2016 .
Skorzystaj
NotificationManagerCompat.areNotificationsEnabled()
z biblioteki pomocy technicznej, aby sprawdzić, czy powiadomienia są blokowane w API 19+. Wersje poniżej API 19 zwrócą prawdę (powiadomienia są włączone).źródło
NotificationManagerCompat.from(ctx).areNotificationsEnabled()
Odpowiedź od @blundell jest poprawna, ale w nowszych wersjach jest niewielka zmiana.
źródło
Właściwie jest to całkiem łatwe:
źródło
Jeśli korzystasz z platformy Xamarin i potrzebujesz tej odpowiedzi, możesz użyć tego kodu:
źródło
Wygląda na to, że nie ma możliwości sprawdzenia stanu powiadomienia.
Polecam:
Nie w 100% poprawne. Ale to daje opinię.
Na przykład, jeśli użytkownik nie kliknie żadnego powiadomienia aplikacji przez 10-15 dni, prawdopodobnie je wyłączył
źródło
Używam tej metody, aby sprawdzić, czy powiadomienia są włączone, czy nie, wyżej wymienione metody będą działać, aby sprawdzić, czy powiadomienia są włączone, czy nie. Ale od Androida 8 do tworzenia powiadomień musimy najpierw utworzyć kanał , więc z Oreo musimy sprawdzić, czy Twój kanał powiadomień jest włączony, czy nie .
źródło