Я создал приложение, которое воспроизводит звук, который не должен прерываться во время его воспроизведения, потому что он предоставляет информацию о временном коде другим устройствам и не будет работать должным образом, когда устройство воспроизводит что-то другое между ними (например, телефонный звонок).
Так что мне нужно решение для отключения уведомлений во время воспроизведения аудио.
Я узнал до сих пор:
При настройке разрешений ранее и указании пользователю разрешить приложению включать DND с помощью
startActivityForResult(new
Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS), 0);
Я могу активировать режим «Не беспокоить» (DND) через
NotificationManager.setInterruptionFilter(
NotificationManager.INTERRUPTION_FILTER_NONE)
но , который также отключит аудиопоток моего приложения. (см. 1 )
блокировать телефонные звонки возможно только тогда, когда у пользователя есть права root. Я могу не спросить у моих пользователей об этом, а также он не отключит другие уведомления
Я могу не использовать режим полета, потому что приложению требуется WiFi для запроса времени через NTP из Интернета.
Вероятно, решение состоит в том, чтобы установить DND-режим вручную и запустить приложение и поток после этого. Но как можно отправить пользователя прямо в DND-меню, чтобы он / она мог включить DND-режим и вернуться в приложение, нажав кнопку «Назад»?
Я нашел только Настройки-Действия:
ACTION_NOTIFICATION_LISTENER_SETTINGS
ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS
ACTION_SOUND_SETTINGS
, которые не подходят для этого. Может быть, предусмотрено как-то открыть быстрые настройки режима DND?
Итак, чтобы сократить это, что мне нужно сделать:
Пользователь запускает аудио -> пользователя спрашивают, хочет ли он активировать dnd без прерывания воспроизведения аудио ->
воспроизведение аудио начато ->
пользователь останавливает звук -> DND отключен
Заранее спасибо за идеи по этому поводу