2016-06-30 13 views
5

W aplikacji na Androida mam przycisk, który chcę mieć możliwość otwierania ustawień Powiadomień aplikacji (w ustawieniach Androida).Ustawienia programowego powiadamiania o aplikacjach programowo

Screenshot of Android's notification settings for the Camera application

mogę otworzyć Android ustawienia z tym

startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 0); 

ale chcę otworzyć bezpośrednio w ustawieniach powiadomień aplikacji

Alternatywne

Jeśli istnieje sposób na programowe włączanie i wyłączanie "Blokowania powiadomień" Też będę w porządku.

+0

Dodaj wartość boolowską, zapisz ją i dodaj ustawienia w aplikacji. – Zoe

+0

Możliwy duplikat [W jaki sposób można połączyć z ustawieniami powiadomień Androida dla mojej aplikacji?] (Https://stackoverflow.com/questions/32366649/any-way-to-link-to-the-android-notification-settings- for-my-app) – Przemo

Odpowiedz

7

Brak publicznego interfejsu API, który umożliwia bezpośredni dostęp do ustawień powiadomień bezpośrednio w aplikacji.

Możesz użyć Settings.ACTION_APPLICATION_DETAILS_SETTINGS, aby uzyskać precyzyjny link do ustawień aplikacji, ale to nie prowadzi bezpośrednio do ekranu powiadomień.

Any way to link to the Android notification settings for my app? ma rozwiązanie, które może działać, ale ponieważ nie jest częścią oficjalnego API, nie gwarantuje się działania na wszystkich urządzeniach ani w przyszłych wersjach Androida.

jeśli istnieje sposób, aby włączyć „notificaations blok” i wyłączać programowo że byłoby ok zbyt

nie

Absolutnie. Zezwalanie aplikacji na programowe włączanie i wyłączanie powiadomień powoduje, że użytkownik nie ma wpływu na włączanie i wyłączanie powiadomień.

+0

źle wykorzystam ustawienia.ACTION_APPLICATION_DETAILS_SETTINGS, dzięki – Ric

0
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
Uri uri = Uri.fromParts("package", getPackageName(), null); 
intent.setData(uri); 
startActivity(intent); 
0

wiem, jest to stara sprawa, ale dla tych, znalezienie go w przyszłości: jak Oreo (poziom API 26) jest teraz oficjalnym Deeplink Intent ustawień konkretnej aplikacji za powiadomień.

Intent settingsIntent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS) 
     .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 
     .putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName()) 
     .putExtra(Settings.EXTRA_CHANNEL_ID, MY_CHANNEL_ID); 
startActivity(settingsIntent); 

Parametr EXTRA_CHANNEL_ID jest opcjonalny, a według the docs będzie "podkreślają, że kanał". FWIW, począwszy od Androida 8.1, nie widzę, żeby to miało jakikolwiek wpływ.

Powiązane problemy