Фон
Мне нужно решить, будет ли звучать (звуковая) мелодия звонка при каждом вызове.
Я знаю, что есть API для определения, находится ли режим мелодии звонка в беззвучном режиме,вибрация или нормальная:
val am = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
val ringerMode = am.ringerMode
документы здесь .
Доступ к этому можно получить во время разговора, и он хорошо работает.
Проблема
Существует дополнительная, более проблемная и расплывчатая настройка, которую пользователь может установить, называемая «не беспокоить».API, чтобы получить его состояние через getCurrentInterruptionFilter
(документы здесь ).
Что я нашел
Видя, что описаниеНемного расплывчато относительно мелодий звонка, я подумал, что, возможно, я мог бы, по крайней мере, сказать, что когда эта функция возвращает INTERRUPTION_FILTER_ALL , я могу быть уверен, что мелодия звонка не отключена:
Обычный фильтр прерываний - никакие уведомления не подавляются.
Но, как я выяснил, даже это не так, поскольку пользователь может устанавливать более сложные правила, как показано нанастройки для него:
Вопрос
Учитывая входящий телефонный звонок (и, конечно, номер телефона, потому что я могуполучить его), можно проверить, будет ли отключен рингтон или нет?