Poniższy diagram ilustruje komponenty systemu współpracujące z Dialerem:
Rysunek 1. Komponenty współpracujące z Dialerem
Interfejs systemu. Dolny aspekt nawigacji, w którym znajduje się przycisk Telefon, który rejestruje
intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end
. Spowoduje to rozpoczęcie głównej aktywności użytkownika,TelecomActivity
.Program uruchamiający aplikacje. Zarządza całą listą aplikacji. Dialer deklaruje TelecomActivity za pomocą
android.intent.category.LAUNCHER
. Wybranie aplikacji na telefon z listy aplikacji w programie uruchamiającym powoduje wyświetlenie TelecomActivity.Widżet domowy. W odniesieniu do AOSP nie ma widżetu Home. Producenci OEM mogą rozważyć dodanie widżetu głównego do programu Dialer, który będzie wyświetlał stan aktualnie podłączonego telefonu (a także inne informacje).
Centrum powiadomień
W przypadku połączeń przychodzących wyświetlane jest powiadomienie Heads Up (HUN). Kiedy Dialer
InCallServiceImpl
odbierze połączenie przychodzące, Dialer wysyła HUN do centrum powiadomień, które wyświetla szczegóły połączenia, takie jak numer telefonu lub dane kontaktowe. Dialer wyświetla także dwa przyciski akcji: Odbierz i Odrzuć. Dotykając przycisku Odbierz, połączenie zostanie odebrane, aInCallServiceImpl
obsłuży aktywne połączenie, aby wyświetlić interfejs użytkownika Dialera w trakcie połączenia i odrzucić numer HUN. Kliknięcie HUN powoduje wyświetlenie pełnoekranowej strony InCall z przyciskami Odbierz i Odrzuć.Pojawia się powiadomienie o nieprzeczytanych nieodebranych połączeniach. Kliknięcie powiadomienia powoduje wyświetlenie strony Historii połączeń i oznaczenie nieodebranych połączeń jako przeczytanych. Dotknięcie przycisku Oddzwoń powoduje nawiązanie połączenia i wyświetlenie interfejsu użytkownika programu Dialer InCall.
Asystent. Użytkownicy mogą poprosić asystenta o wykonanie połączenia, co może wyświetlić interfejs użytkownika Dialer InCall.
Mapy Google. Zadzwonienie do sprzedawcy z Map Google powoduje wysłanie intencji DIAL z dodatkowymi numerami telefonów, co spowoduje uruchomienie strony Dialpad umożliwiającej szybkie wybieranie.
Usługa CarInput. Monitoruje klawisz fizyczny przycisków połączenia i zakończenia połączenia na kierownicy. Naciśnięcie:
Przycisk połączenia na kierownicy, gdy nie ma połączenia przychodzącego, wysyła polecenie DIAL i wyświetla stronę Dialpad w programie Dialer.
Przycisk połączenia na kierownicy w przypadku połączenia przychodzącego powoduje odebranie połączenia przez TelecomManager.
Przycisk Zakończ połączenie na kierownicy, gdy nadejdzie połączenie przychodzące, TelecomManager zakończy połączenie.
Bluetooth
Klient PBAPC. Pobiera kontakty z telefonu i zapisuje je do dostawcy kontaktów. Dla każdego podłączonego telefonu tworzone jest konto zawierające adres MAC Bluetooth urządzenia jako nazwę konta i
com.android.bluetooth.pbapsink
(@string/pbap_account_type
zdefiniowany wpackages/apps/Bluetooth
) jako typ konta. Kontakty zapisane u dostawcy kontaktów są zapisywane wraz z informacjami o koncie i usuwane po odłączeniu telefonu.PBAPClient
nie współpracuje bezpośrednio z Dialerem, ale zamiast tego zapisuje kontakty do dostawcy kontaktów. Dialer odczytuje kontakty od dostawcy kontaktów.HfpClientConnectionService
. Zarządza połączeniem Bluetooth poprzez HFP i raportuje połączenie do usług telekomunikacyjnych.
Telekomunikacja. Struktura Android Telecom zarządza połączeniami audio i wideo na urządzeniu z Androidem. Ponieważ Dialer jest domyślną aplikacją na telefon, implementuje interfejsy API
InCallService
, aInCallController
powiąże implementację InCallService Dialera w celu obsługi połączeń. Aby uzyskać więcej informacji, zobacz Tworzenie zastępczej aplikacji na telefon i Stawanie się domyślną aplikacją na telefon .Ustawienia systemowe. Dialer monitoruje listę urządzeń podłączonych do HFP i wyświetla komunikat o błędzie, gdy żaden telefon nie jest podłączony do dialera poprzez Bluetooth. W dokumentacji AOSP przycisk Połącz z Bluetooth łączy użytkowników ze stroną ustawień Bluetooth systemu, gdzie można sparować nowe urządzenie lub połączyć się ze sparowanym urządzeniem.
Silnik rozpraszający uwagę kierowcy. Ta usługa systemu Android nakłada ograniczenia UX na podstawie stanu jazdy samochodu. Dialer musi wykonać wszystkie ograniczenia rozpraszające kierowcę UX. Aby to zrobić, Dialer musi nasłuchiwać menedżera CarUXRestrictionManager i wdrożyć wszystkie zasady. Dialer musi:
Połącz się z biblioteką Car i uzyskaj instancję CarUXRestrictionManager .
Subskrybuj aktualizacje na liście CarUxRestrictions i wdrażaj je zgodnie z dokumentacją.
Szczególnie ważne dla Dialera:
Strona ustawień jest zoptymalizowana pod kątem pojazdu. Użytkownik nie mógł uzyskać dostępu do strony ustawień dialera podczas jazdy. Dotknięcie menu Ustawienia na pasku akcji powoduje wyświetlenie ekranu blokującego, uniemożliwiającego użytkownikowi dostęp do Ustawień podczas jazdy. Jeśli strona Ustawienia jest już wyświetlona, pojawi się ekran blokowania, aby przerwać interakcję użytkownika.
Podczas jazdy nie można uzyskać dostępu do ustawień systemu. Jeśli na stronie Błąd nie jest podłączone żadne urządzenie Bluetooth, przycisk Połącz z Bluetooth powoduje wyświetlenie strony ustawień Bluetooth systemu. UXR tego przycisku jest całkowicie ograniczony. Podczas jazdy kliknięcie tego przycisku powoduje wyświetlenie komunikatu o błędzie informującego użytkownika, aby najpierw zaparkował samochód, a następnie wykonał czynność.
Użytkownik nie może rozpocząć procesu dodawania do ulubionych podczas jazdy. Przycisk Dodaj ulubione jest wyłączony.
Przepływy użytkowników
Główny dialer
Poniżej znajdują się różne strony Dialera.
Rysunek 2. Strona główna Dialera
Obsługa połączeń
Poniżej przedstawiono przebieg procesu obsługi połączeń:
Rysunek 3. Obsługa połączeń
Powiadomienia
Poniżej wyświetlane są różne strony powiadomień:
Rysunek 4. Powiadomienia
Stan połączenia
Poniżej przedstawiono przebieg strony InCall:
Rysunek 5. Strona InCall
Szukaj
Ekrany wyszukiwania to:
Rysunek 6. Szukaj
Ustawienia
Opcje ustawień to:
Rysunek 7. Ustawienia