A partire dal 27 marzo 2025, ti consigliamo di utilizzare android-latest-release
anziché aosp-main
per compilare e contribuire ad AOSP. Per ulteriori informazioni, vedi Modifiche ad AOSP.
Dettagli tecnici
Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Il seguente diagramma illustra i componenti di sistema che interagiscono con Telefono:

Figura 1. Componenti che interagiscono con Telefono
-
UI di sistema. Lasse di navigazione inferiore per ospitare il pulsante Telefono, che registra l'intent intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end
.
Viene avviata l'attività principale dell'utente, TelecomActivity
.
-
Avvio app. Gestisce l'intero elenco di app. Dialer dichiara
TelecomActivity con android.intent.category.LAUNCHER
. Se selezioni l'app Telefono dall'elenco delle app del programma di avvio, viene visualizzato TelecomActivity.
-
Widget della casa. Nel riferimento AOSP non è presente il widget Home. Gli OEM potrebbero valutare la possibilità di aggiungere un widget della schermata Home per la funzionalità Telefono per visualizzare lo stato dello smartphone attualmente connesso (nonché altre informazioni).
-
Centro notifiche
-
La notifica Heads Up viene visualizzata per le chiamate in arrivo. Quando la funzionalità Telefono
InCallServiceImpl
riceve una chiamata in arrivo, pubblica un HUN nel
Centro notifiche, che mostra i dettagli della chiamata, ad esempio il numero di telefono o i dati di contatto.
Telefono mostra anche due pulsanti di azione, Rispondi e Rifiuta. Se tocchi il pulsante Rispondi,
la chiamata viene risposta e InCallServiceImpl
gestisce la chiamata attiva per mostrare
l'interfaccia utente di Chiamata in corso del dialer e chiude la finestra HUN. Se fai clic sull'HUN, viene visualizzata la pagina In chiamata
a schermo intero con i pulsanti Rispondi e Rifiuta.
-
Viene visualizzata una notifica per le chiamate senza risposta non lette. Se fai clic sulla
notifica, viene visualizzata la pagina Cronologia chiamate e le chiamate senza risposta vengono contrassegnate come lette. Se tocchi il pulsante Riagg., viene effettuata una chiamata e viene visualizzata l'interfaccia utente InCall di Telefono.
-
Assistente. Gli utenti possono chiedere a un assistente di effettuare una chiamata che potrebbe mostrare l'interfaccia utente di Chiamata in corso di Telefono.
-
Google Maps. La chiamata a un commerciante da Google Maps invia l'intent DIAL con extra dei numeri di telefono che avviano la pagina Dialpad per la composizione rapida.
-
CarInputService. Monitora il tasto fisico dei pulsanti Chiama e Termina chiamata sul volante. Premendo:
-
Il pulsante di chiamata sul volante quando non ci sono chiamate in arrivo invia l'intent DIAL
e mostra la pagina tastiera del tastierino.
-
Il pulsante di chiamata sul volante quando è presente una chiamata in arrivo fa sì che
TelecomManager risponda alla chiamata.
-
Pulsante di terminazione chiamata sul volante quando è presente una chiamata in arrivo, TelecomManager termina la chiamata.
-
Bluetooth
-
PBAPClient. Scarica i contatti da uno smartphone e scrive al fornitore di servizi di telefonia. Per ogni smartphone connesso, viene creato un account con l'indirizzo MAC Bluetooth del dispositivo come nome dell'account e com.android.bluetooth.pbapsink
(@string/pbap_account_type
definito in packages/apps/Bluetooth
) come
tipo di account. I contatti scritti nel fornitore di contatti vengono scritti con le informazioni dell'account
e vengono cancellati quando lo smartphone viene disconnesso. PBAPClient
non interagisce direttamente con il Dialer, ma scrive i contatti nel fornitore di contatti. Telefono
legge i contatti dal provider di contatti.
-
HfpClientConnectionService
. Gestisce la chiamata Bluetooth tramite HFP e la segnala ai servizi di Telecom.
-
Telecom. Il framework Android Telecom gestisce le chiamate audio e video su un
dispositivo Android. Poiché Telefono è l'app Telefono predefinita, implementa le API
InCallService
e InCallController
legherà l'implementazione di InCallService di Telefono per gestire le chiamate. Per maggiori dettagli, vedi
Creare
un'app Telefono sostitutiva e
Diventare
l'app Telefono predefinita.
-
Impostazioni di sistema. La funzionalità Telefono monitora l'elenco dei dispositivi connessi tramite HFP e visualizza un messaggio di errore quando non sono connessi telefoni tramite Bluetooth. Nella documentazione di riferimento AOSP, il pulsante Connetti al Bluetooth indirizza gli utenti alla pagina Impostazioni Bluetooth del sistema per accoppiare un nuovo dispositivo o connettersi a un dispositivo accoppiato.
-
Motore di rilevamento della distrazione del conducente. Questo servizio di sistema Android impone limitazioni all'esperienza utente in base allo stato di guida dell'auto. La funzionalità Telefono deve eseguire tutte le limitazioni relative alle distrazioni alla guida UX.Per farlo, deve ascoltare il CarUXRestrictionManager e implementare tutte le norme. La funzionalità Telefono deve:
-
Collegarti alla libreria Car
e ottenere un'istanza di
CarUXRestrictionManager.
-
Abbonati agli aggiornamenti nell'elenco di
CarUxRestrictions
e implementali come descritto.
-
Di particolare importanza per Dialer:
-
La pagina delle impostazioni è ottimizzata per il veicolo. L'utente non è riuscito ad accedere alla pagina Impostazioni tastiera mentre guidava. Se tocchi il menu Impostazioni nella barra delle azioni, viene visualizzata una schermata di blocco per impedire all'utente di accedere alle Impostazioni mentre guida. Se la pagina Impostazioni è già visualizzata, verrà visualizzata la schermata di blocco per interrompere l'interazione dell'utente.
-
Non è possibile accedere alle impostazioni di sistema durante la guida. Nella pagina Errore,
quando non sono connessi dispositivi Bluetooth, un pulsante Connetti al Bluetooth mostra la
pagina delle impostazioni Bluetooth del sistema. L'UXR di questo pulsante è completamente limitato.
Mentre guidi, se fai clic su questo pulsante viene visualizzato un messaggio di errore che informa l'utente di parcheggiare prima l'auto ed eseguire l'azione.
-
L'utente non può avviare la procedura di aggiunta ai preferiti durante la guida. Il pulsante Aggiungi preferito è disattivato.
Flussi utente
Dialer Main
Di seguito sono riportate le diverse pagine di Dialer.

Figura 2. Pagina principale della tastiera
Gestione chiamate
Di seguito è riportato il flusso di gestione delle chiamate:

Figura 3. Gestione chiamate
Notifiche
Di seguito sono riportate le diverse pagine di notifica:

Figura 4. Notifiche
Stato InCall
Di seguito è riportato il flusso della pagina In chiamata:

Figura 5. Pagina In chiamata
Cerca
Le visualizzazioni della ricerca sono:

Figura 6. Cerca
Impostazioni
Le opzioni Impostazioni sono:

Figura 7. Impostazioni
I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate.
Ultimo aggiornamento 2025-07-27 UTC.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-07-27 UTC."],[],[],null,["# Technical details\n\nThe following diagram illustrates the system components that interact with Dialer:\n\n**Figure 1.** Components that interact with Dialer\n\n- **System UI.** Lower navigation facet to host the Phone button, which\n registers the `intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end` intent.\n This starts the user's main activity, `TelecomActivity`.\n\n- **App Launcher.** Manages the entire app list. Dialer declares\n TelecomActivity with `android.intent.category.LAUNCHER`. Selecting the phone app from\n the launcher's app list displays TelecomActivity.\n\n- **Home widget.** In AOSP reference, there is no Home widget. OEMs might want to\n consider adding a Home widget for Dialer to display the state of the current connected phone (as\n well as other information).\n\n- **Notification Center**\n\n - **Heads Up Notification (HUN) is displayed for incoming calls.** When the Dialer\n `InCallServiceImpl` receives an incoming call, Dialer posts a HUN to the\n Notification center, which shows the call details, such as phone number or contact info.\n Dialer also displays two action buttons, Answer and Decline. By tapping Answer button,\n the call is answered and `InCallServiceImpl` handles the active call to show\n Dialer's in call UI and dismisses the HUN. Clicking on the HUN displays the fullscreen\n InCall page with the Answer and Reject buttons.\n\n - **Notification appears for unread missed calls.** Clicking on the\n notification displays the Call History page and marks missed calls as read. Tapping the\n Call Back button places a call and displays the Dialer's InCall user interface.\n\n- **Assistant.** Users can ask an assistant to make a call that may display the\n Dialer InCall user interface.\n\n- **Google Maps.**Calling a merchant from Google Maps sends the DIAL\n intent with extras of phone numbers which will start Dialpad page for quick dialing.\n\n- **CarInputService.**Monitors the physical key of the Call and End Call\n buttons on the steering wheel. Pressing the:\n\n - Call button from the steering wheel when there is no incoming call sends the DIAL\n intent and displays the Dialpad page of Dialer.\n\n - Call button from the steering wheel when there is an incoming call causes the\n TelecomManager to answer the call.\n\n - End Call button from the steering wheel when there is an incoming call, the\n TelecomManager ends the call.\n\n- **Bluetooth**\n\n - **PBAPClient.** Downloads contacts from a phone and writes to the\n contacts provider. For each phone connected, an account is created with the device's\n Bluetooth MAC address as the account name and `com.android.bluetooth.pbapsink`\n (`@string/pbap_account_type` defined in `packages/apps/Bluetooth`) as\n the account type. Contacts written to the contacts provider are written with the account\n information and are cleared when the phone is disconnected. `PBAPClient` doesn't\n interact directly with Dialer but instead writes contacts to the Contacts Provider. Dialer\n reads the contacts from the Contacts Provider.\n\n - **`HfpClientConnectionService`.** Manages the Bluetooth call\n through HFP and reports the call to the Telecom services.\n\n- **Telecom.** The Android Telecom framework manages audio and video calls on an\n Android device. Since Dialer is the default phone app, it implements the\n [InCallService](https://developer.android.com/reference/android/telecom/InCallService.html)\n APIs and `InCallController` will bind the Dialer's InCallService implementation to\n handle calls. For more details, see\n [Create\n a replacement phone app](https://developer.android.com/guide/topics/connectivity/telecom#replacePhoneApp) and\n [Becoming\n the Default Phone App](https://developer.android.com/reference/android/telecom/InCallService.html#becoming-the-default-phone-app).\n\n- **System Settings.** Dialer monitors the HFP-connected device list and displays\n an error message when no phones are connected to dialer through Bluetooth. In the AOSP\n reference, the Connect to Bluetooth button links users to the system Bluetooth Settings\n page to pair a new device or to connect to a paired device.\n\n- **Driver Distraction Engine.** This Android system service imposes UX\n restrictions based on the driving state of the car. Dialer must execute all UX driving\n distraction restrictions.To do so, Dialer must listen to the\n [CarUXRestrictionManager](https://developer.android.com/reference/android/car/drivingstate/CarUxRestrictionsManager)\n and implement all policies. Dialer must:\n\n - Connect to the [Car](https://developer.android.com/reference/android/car/Car)\n library and obtain an instance of\n [CarUXRestrictionManager](https://developer.android.com/reference/android/car/drivingstate/CarUxRestrictionsManager).\n\n - Subscribe to updates in the list of\n [CarUxRestrictions](https://developer.android.com/reference/android/car/drivingstate/CarUxRestrictions)\n and implement them as documented.\n\n - Of particular importance to Dialer:\n\n - **Settings page is vehicle-optimized.** User could not access the\n Dialer Settings page when driving. By tapping on the Settings menu from the action bar,\n a blocking screen is displayed to prevent the user from accessing Settings while\n driving. If the Settings page is already displayed, the blocking screen will pop up to\n stop the user interaction.\n\n - **System settings cannot be accessed while driving.** On the Error page,\n when no Bluetooth devices are connected, a Connect to Bluetooth button displays the\n system Bluetooth settings page. The UXR of this button is fully restricted.\n While driving, clicking on this button displays an error message to inform the\n user to park the car first and then perform the action.\n\n - **User cannot start the add-to-favorite flow while driving.** The Add a\n Favorite button is disabled.\n\nUser flows\n----------\n\n### Dialer Main\n\nThe different pages for Dialer are provided below.\n\n**Figure 2.** Main Dialer page\n\n### Call handling\n\nThe call handing process flow is presented below:\n\n**Figure 3.** Call handling\n\n### Notifications\n\nThe different notifications pages are displayed below:\n\n**Figure 4.** Notifications\n\n### InCall status\n\nThe InCall page flow is shown below:\n\n**Figure 5.** InCall page\n\n### Search\n\nThe Search displays are:\n\n**Figure 6.** Search\n\n### Settings\n\nThe Settings options are:\n\n**Figure 7.** Settings"]]