#java #android #android-permissions #notification-listener
Вопрос:
На данный момент я прошу разрешения использовать Доступ к уведомлениям (Служба прослушивания уведомлений) следующим образом:
startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));
Это действительно работает, но пользователь должен выбрать мое приложение из списка приложений.
Чтобы улучшить удобство использования, я бы хотел, чтобы это выглядело примерно так
Кто-нибудь знает, как его правильно фильтровать?
Для настроек доступа к использованию я использую следующий код:
Intent myIntent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS, Uri.parse("package:" getPackageName()));
startActivity(myIntent);
К сожалению, это не работает для настроек доступа к уведомлениям.
Ошибка:
No Activity found to handle Intent { act=android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS dat=package:notificationmanager }
Ответ №1:
Нашел решение:
ComponentName componentName = new ComponentName(getPackageName(), YOUR_LISTENER_CLASS.class.getName());
Intent notificationAccessSettings =
new Intent(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_DETAIL_SETTINGS));
notificationAccessSettings.putExtra(Settings.EXTRA_NOTIFICATION_LISTENER_COMPONENT_NAME, componentName.flattenToString());
startActivity(notificationAccessSettings);
Это было введено только в API версии 30, и я не знаю способа (или если это вообще возможно) для более ранних версий.
Комментарии:
1. да, он работает для Android R(уровень api 30). но более ранняя версия.