Android 7.0 перемещает функции, связанные с уведомлениями о звонках, из системной службы Telecom на платформе Android в приложение Dialer. Ранее ответственность за отображение уведомлений о звонках была разделена между Telecom и приложением Dialer по умолчанию, что создавало несоответствия в поведении. В Android 7.0 номеронабиратель берет на себя всю ответственность за обработку уведомлений о звонках.
Поведение в Android 6.x и более ранних версиях
В более ранних версиях Android Telecom и Dialer разделяли обязанности, как описано ниже:
Функциональность | Выполнено Телеком | Выполнено номеронабирателем |
---|---|---|
Уведомление о входящем звонке | Да (звонок, вибрация) | Да (отображение уведомлений, идентификатор вызывающего абонента) |
Отправить на голосовую почту | да | Нет |
Пользовательский рингтон | да | Нет |
Уведомления о пропущенных звонках | да | Нет |
Индикатор ожидающего сообщения (вызов голосовой почты) | Да (телефония) | Нет |
Визуальные уведомления голосовой почты | Нет | да |
Примеры непоследовательного поведения, вызванного таким разделением ответственности, включают:
- Телеком отвечал за запуск звонка/вибратора, но номеронабиратель отвечал за отображение уведомления о входящем звонке. Если номеронабиратель запускается медленно, это может привести к тому, что звонок начнется за несколько секунд до отображения уведомления о входящем вызове.
- Telecom отвечал за отображение уведомлений о пропущенных вызовах. Поскольку проприетарные функции (такие как идентификатор вызывающего абонента Google) не работают с этими уведомлениями, это может привести к несоответствиям между уведомлениями Telecom и пользовательским интерфейсом номеронабирателя (например, журналом вызовов).
Поведение в Android 7.0 и более поздних версиях
Номеронабиратель Android с открытым исходным кодом (AOSP) реализует новую функциональность. Подробности см. в следующей документации:
- Уведомления о пропущенных звонках
Telecom/src/com/android/server/telecom/ui/MissedCallNotifierImpl.java
Dialer/android/dialer/calllog/MissedCallNotificationReceiver.java
Dialer/android/dialer/calllog/MissedCallNotifier.java - Воспроизведение мелодий:
рамки/база/телеком/java/андроид/телеком/InCallService.java
Телеком/src/com/android/сервер/телеком/InCallController.java
Звонилка/java/com/android/incallui/рингтон/
Номеронабиратель/java/com/android/incallui/StatusBarNotifier.java - Уведомления VVM
фреймворки/база/телефония/java/android/телефония/TelephonyManager.java
Телефония/src/com/android/phone/PhoneInterfaceManager.java
Dialer/src/com/android/dialer/calllog/DefaultVoicemailNotifier.java
Стиль уведомлений для звонков в Android 12 и выше
Для устройств под управлением Android 12 или более поздней версии, чтобы обеспечить согласованное взаимодействие с пользователем для вызовов, мы рекомендуем приложениям использовать стиль уведомлений CallStyle
для входящих и текущих вызовов. Дополнительные сведения см. в разделе Уведомления о новых телефонных звонках, позволяющие ранжировать важность входящих звонков .
Реализация
Разработчикам устройств может потребоваться обновить компоненты Telecom/Telephony, которые предоставляют API, доступные для использования номеронабирателем по умолчанию.