2013-08-13 13 views
8

Jak uzyskać do niego dostęp za pośrednictwem kodu? Mogę więc automatycznie otworzyć to dla użytkowników i nie muszą oni przechodzić przez ustawienia zabezpieczeń, aby je włączyć.Uzyskiwanie dostępu do nowych ustawień powiadomień w systemie Android 4.3 do kodu

Nie mogę znaleźć tego w Android Studio, używając startActivity(new Intent(Settings.<>));, gdzie <> jest listą ekranów ustawień.

Notification Access Screen

dzięki uprzejmości Android Police

+0

Jest możliwe, że to będzie wyświetlane tylko na ekranie Zabezpieczenia w Ustawieniach, gdy zainstalowane są 1+ słuchacze powiadomień. – CommonsWare

+0

Zainstalowałem moją aplikację z odbiornikiem powiadomień, a także z aplikacją "ActiveNotifications dla Androida" (która wyświetla ekran ustawień po otwarciu aplikacji), ale nadal się nie wyświetla. – adefran83

+0

Czuję się naprawdę głupio, pojawia się po zainstalowaniu ... jednak chciałbym automatycznie otworzyć go dla użytkownika, aby nie musieli go szukać. zmodyfikuje moje pytanie, aby to odzwierciedlić. – adefran83

Odpowiedz

23

Jest an outstanding bug w Androidzie 4.3, gdzie akcja ekran powiadomienie słuchacz nie jest wymieniony w Settings. Obecny obejście jest:

startActivity(new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS")); 
+0

Dzięki! Działa doskonale. – adefran83

+0

Użyłem tego w mojej aplikacji, ale teraz otwiera się przy każdym uruchomieniu aplikacji. Czy istnieje sposób, aby go otworzyć tylko wtedy, gdy użytkownik nie wybrał aplikacji do uzyskania dostępu? –

+1

@AbhyudayaSrinet: Nie odtwarzałem z 'NotificationListenerService'. Będziesz musiał sprawdzić, czy jesteś włączony jako odbiornik, czy nie, i uruchamiać działanie tylko wtedy, gdy nie jesteś włączony jako słuchacz. Nie badałem tego obszaru, aby wiedzieć, jak dokładnie to zrobić. – CommonsWare

2

bug że @CommonsWare wspomniano has been fixed as of Android 5.1 (API 22). Teraz można to wykorzystać, aby doprowadzić użytkownika do dostępu ekranie zgłoszenia:

startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));

mam przetestowane w wielu przypadkach Genymotion (4.3, 4.4 i 5.1), jak również prowadzeniem Galaxy S3 4.3, a to rozwiązanie działało doskonale w każdym przypadku.

dziwo jednak Android Studio daje mi ostrzeżenie, gdy używam tego pola na pre-API 22 projekty, pomimo faktu, że działa bez problemów:

Pole wymaga API 22 (prąd minimum to 18) : android.provider.Settings # ACTION_NOTIFICATION_LISTENER_SETTINGS

wierzę, że to ostrzeżenie powinny móc być bezpiecznie ignorowane, podobnie jak można użyć wartości z Build.VERSION_CODES w dowolnej wersji platformy.

Link do dokumentacji: Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS

Powiązane problemy