Android 8: невозможно изменить режим звонка на бесшумный, когда режим звонка беззвучный

1

Я написал приложение для Android, которое меняет режим звонка с любого режима на нормальный, если BroadcastReceiver получает уведомление.

Работает нормально на Android <8.

Это также работает для моего устройства Android 8, если режим звонка! = Молчит, когда вещательный приемник реагирует.

  • Режим звонка! = Тихо и измените его на любой режим звонка.
    • работает на всех устройствах
  • Режим звонка == Тихий и изменить его на тихий режим
    • отлично работает на всех устройствах
  • Режим звонка == Тихий и изменить его на не тихий режим
    • работает только на старых устройствах с Android <8

При переходе с тихого на бесшумный Boradcast already finished на Android 8 я получаю исключение о том, что Boradcast already finished?!

Такое поведение только на моем устройстве Android 8, старые устройства работают нормально.

Может ли кто-нибудь помочь в этом странном поведении? Спасибо!

Теги:
android-8.0-oreo
android-broadcastreceiver

1 ответ

0

Я нашел решение проблемы: оно вызвано режимом "Не беспокоить" в новых версиях Android.

Чтобы отключить этот беззвучный режим, вы должны

  1. добавить разрешение в AndroidManifest:

    использование-разрешение android: name = "android.permission.ACCESS_NOTIFICATION_POLICY"

  2. Попросите пользователя разрешить выход из этого режима "не беспокоить" следующим намерением:

    Намерение намерения = новое намерение (android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS); startActivity (намерение);

См. Также этот вопрос/ответ: в Android 7 (уровень API 24) моему приложению не разрешено отключение звука телефона (установите режим звонка в беззвучный режим)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню