Huawei EMUI 8 Oreo - Канал уведомлений - Звук

Некоторые пользователи сообщают о Huawei EMUI 8.0 Oreo, что Канал уведомлений не имеет возможности изменить тон "Звук" / " Сигнал уведомления" из приложения!

Согласно официальной документации, разработчик больше не может изменять настройки.
Итак, как я могу добавить опцию для телефонов Huawei, чтобы снова изменить «Тон уведомлений»?

И кто-нибудь знает, почему, черт возьми, Huawei удалила эту функцию?
Я не нашел официальных документов от Huawei, как теперь мы можем разрешить пользователю изменять тон уведомления.

Официальные документы, на которые я ссылаюсь:
https://developer.android.com/reference/android/app/NotificationChannel.html

https://developer.android.com/reference/android/app/NotificationChannel.html#setSound(android.net.Uri, android.media.AudioAttributes)


person chrisonline    schedule 26.12.2017    source источник


Ответы (2)


Недавно мы столкнулись с той же проблемой. Это не очень хорошее решение, но WhatsApp делает то же самое. По сути, мы показываем выбор мелодии звонка внутри нашего приложения, а затем удаляем и воссоздаем канал уведомлений с новым идентификатором канала и выбранным uri мелодии. Вы можете скопировать большинство настроек, сделанных для канала, на новый, кроме «не беспокоить».

Как я уже сказал, это не очень хорошее решение, и я не знаю, что произойдет, если канал будет часто пересоздаваться. Но, надеюсь, рингтон не меняется слишком часто.

Примечание. На экране настроек уведомлений отображается количество удаленных каналов в качестве механизма защиты от спама.

person Devenias    schedule 03.12.2018

Столкнулся с такой же проблемой на китайских устройствах. Во-первых, у меня такое же решение, как и у @Devenias. Как это работает в системе: когда вы определяете новый канал, NotificationService сохраняет этот канал в xml, после того, как вы его изменили, он все еще содержится в этом xml. Таким образом, при новом изменении канала NotificationService проверит, есть ли у него канал с таким же именем, и просто извлечет его. Поэтому я постоянно создаю новый канал с новыми настройками, когда пользователь меняет вибрацию или рингтон в приложении. Также это работает как кеш, просто сделайте уникальное имя канала для пары‹мелодия, вибрация›. Это решение довольно хакерское, так как оно хорошо работает на устройствах Honor, Huawei, Samsung и Xiaomi Mi A1, но оно вызывает сбой службы NotificationService с NullPointer в SystemUI на Xiaomi Mi Mix 2 (устройство выполняет мягкую перезагрузку, если служба SystemUI дает сбой), поэтому не используйте это решение.

Так что в настоящее время безопасным обходным путем является воспроизведение звука и вибрации вручную.

person HeyAlex    schedule 24.12.2018