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