На следующей схеме показаны компоненты системы, взаимодействующие с Dialer:
Рисунок 1. Компоненты, взаимодействующие с Dialer
Системный интерфейс. Нижний аспект навигации для размещения кнопки «Телефон», которая регистрирует
intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end
намерения. При этом запускается основная деятельность пользователя —TelecomActivity
.Панель запуска приложений. Управляет всем списком приложений. Dialer объявляет TelecomActivity с помощью
android.intent.category.LAUNCHER
. При выборе приложения для телефона из списка приложений средства запуска отображается TelecomActivity.Домашний виджет. В справочнике AOSP нет виджета «Домой». OEM-производители могут рассмотреть возможность добавления виджета «Домой» для Dialer для отображения состояния текущего подключенного телефона (а также другой информации).
Центр уведомлений
Уведомление Heads Up Notification (HUN) отображается для входящих вызовов. Когда Dialer
InCallServiceImpl
получает входящий вызов, Dialer отправляет HUN в центр уведомлений, где отображаются сведения о вызове, такие как номер телефона или контактная информация. В Dialer также отображаются две кнопки действий: «Ответить» и «Отклонить». При нажатии кнопки «Ответить» на вызов принимается ответ, иInCallServiceImpl
обрабатывает активный вызов, отображая пользовательский интерфейс Dialer в вызове, и отклоняет HUN. При нажатии на HUN отображается полноэкранная страница InCall с кнопками «Ответить» и «Отклонить».Появляется уведомление о непрочитанных пропущенных вызовах. При нажатии на уведомление отображается страница «История вызовов» и помечаются пропущенные вызовы как прочитанные. Нажатие кнопки «Обратный вызов» осуществляет вызов и отображает пользовательский интерфейс InCall номеронабирателя.
Помощник. Пользователи могут попросить помощника совершить звонок, который может отобразить пользовательский интерфейс Dialer InCall.
Карты Гугл. При звонке продавцу из Google Maps отправляется намерение DIAL с дополнительными телефонными номерами, которые запускают страницу Dialpad для быстрого набора.
КарИнпутСервис. Контролирует физическую клавишу кнопок вызова и завершения вызова на руле. Нажатие кнопки:
Кнопка вызова на рулевом колесе, когда нет входящего вызова, отправляет намерение DIAL и отображает страницу панели набора номера в Dialer.
Кнопка вызова на руле при входящем звонке заставляет TelecomManager ответить на звонок.
Кнопка «Завершить вызов» на руле при входящем звонке TelecomManager завершает звонок.
Bluetooth
PBAPClient. Скачивает контакты с телефона и пишет провайдеру контактов. Для каждого подключенного телефона создается учетная запись с MAC-адресом Bluetooth устройства в качестве имени учетной записи и
com.android.bluetooth.pbapsink
(@string/pbap_account_type
, определенный вpackages/apps/Bluetooth
) в качестве типа учетной записи. Контакты, записанные в поставщик контактов, записываются вместе с информацией об учетной записи и удаляются при отключении телефона.PBAPClient
не взаимодействует напрямую с Dialer, а вместо этого записывает контакты в поставщик контактов. Dialer считывает контакты из поставщика контактов.HfpClientConnectionService
. Управляет вызовом Bluetooth через HFP и сообщает о вызове службам связи.
Телеком. Платформа Android Telecom управляет аудио- и видеовызовами на устройстве Android. Поскольку Dialer является телефонным приложением по умолчанию, оно реализует API
InCallService
, аInCallController
свяжет реализацию InCallService Dialer для обработки вызовов. Дополнительные сведения см. в разделах «Создание замены приложения для телефона» и «Становление приложения для телефона по умолчанию» .Настройки системы. Программа дозвона отслеживает список устройств, подключенных к HFP, и отображает сообщение об ошибке, если ни один телефон не подключен к номеронабирателю через Bluetooth. В справочнике AOSP кнопка «Подключиться к Bluetooth» направляет пользователей на страницу настроек Bluetooth системы для сопряжения нового устройства или подключения к сопряженному устройству.
Двигатель отвлечения внимания водителя. Этот системный сервис Android накладывает ограничения UX в зависимости от состояния вождения автомобиля. Программа дозвона должна выполнить все ограничения на отвлечение внимания при вождении UX. Для этого программа дозвона должна прослушивать CarUXRestrictionManager и реализовать все политики. Звонилка должна:
Подключитесь к библиотеке Car и получите экземпляр CarUXRestrictionManager .
Подпишитесь на обновления списка CarUxRestrictions и реализуйте их согласно документации.
Особое значение для Dialer:
Страница настроек оптимизирована для автомобиля. Пользователь не мог получить доступ к странице настроек дозвона во время вождения. При нажатии на меню «Настройки» на панели действий отображается экран блокировки, запрещающий пользователю доступ к настройкам во время вождения. Если страница настроек уже отображается, появится экран блокировки, чтобы остановить взаимодействие с пользователем.
Доступ к системным настройкам во время вождения невозможен. Если на странице «Ошибка» не подключено ни одно устройство Bluetooth, кнопка «Подключиться к Bluetooth» отображает страницу настроек Bluetooth системы. UXR этой кнопки полностью ограничен. Во время вождения при нажатии на эту кнопку отображается сообщение об ошибке, информирующее пользователя о необходимости сначала припарковать автомобиль, а затем выполнить действие.
Пользователь не может запустить процесс добавления в избранное во время вождения. Кнопка «Добавить в избранное» отключена.
Пользовательские потоки
Главная номеронабиратель
Ниже представлены различные страницы Dialer.
Рисунок 2. Главная страница дозвона
Обработка вызовов
Ниже представлена последовательность операций обработки вызова:
Рисунок 3. Обработка вызовов
Уведомления
Ниже показаны различные страницы уведомлений:
Рисунок 4. Уведомления
Статус входящего звонка
Схема страницы InCall показана ниже:
Рисунок 5. Страница InCall
Поиск
Поисковые дисплеи:
Рисунок 6. Поиск
Настройки
Варианты настроек:
Рисунок 7. Настройки