Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release
, bukan aosp-main
, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Detail teknis
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Diagram berikut mengilustrasikan komponen sistem yang berinteraksi dengan Telepon:

Gambar 1. Komponen yang berinteraksi dengan Telepon
-
UI Sistem. Faset navigasi bawah untuk menghosting tombol Telepon, yang
mendaftarkan intent intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end
.
Tindakan ini akan memulai aktivitas utama pengguna, TelecomActivity
.
-
Peluncur Aplikasi. Mengelola seluruh daftar aplikasi. Telepon mendeklarasikan
TelecomActivity dengan android.intent.category.LAUNCHER
. Memilih aplikasi telepon dari
daftar aplikasi peluncur akan menampilkan TelecomActivity.
-
Widget layar utama. Dalam referensi AOSP, tidak ada widget Home. OEM sebaiknya
mempertimbangkan untuk menambahkan widget Home untuk Telepon untuk menampilkan status ponsel yang terhubung saat ini (serta
informasi lainnya).
-
Pusat Notifikasi
-
Notifikasi Pendahuluan (HUN) ditampilkan untuk panggilan masuk. Saat InCallServiceImpl
Telepon menerima panggilan masuk, Telepon akan memposting HUN ke
Pusat notifikasi, yang menampilkan detail panggilan, seperti nomor telepon atau info kontak.
Telepon juga menampilkan dua tombol tindakan, Jawab dan Tolak. Dengan mengetuk tombol Jawab,
panggilan akan dijawab dan InCallServiceImpl
akan menangani panggilan aktif untuk menampilkan
UI dalam panggilan Telepon dan menutup HUN. Mengklik HUN akan menampilkan halaman Dalam Panggilan
layar penuh dengan tombol Jawab dan Tolak.
-
Notifikasi muncul untuk panggilan tak terjawab yang belum dibaca. Mengklik notifikasi akan menampilkan halaman Histori Panggilan dan menandai panggilan tak terjawab sebagai telah dibaca. Mengetuk
tombol Hubungi Kembali akan melakukan panggilan dan menampilkan antarmuka pengguna Dalam Panggilan di Telepon.
-
Asisten. Pengguna dapat meminta asisten untuk melakukan panggilan yang dapat menampilkan
antarmuka pengguna InCall Telepon.
-
Google Maps. Memanggil penjual dari Google Maps akan mengirim intent DIAL
dengan tambahan nomor telepon yang akan memulai halaman Dialpad untuk melakukan panggilan cepat.
-
CarInputService. Memantau tombol fisik tombol Telepon dan Akhiri Panggilan
di setir. Menekan:
-
Tombol telepon dari setir saat tidak ada panggilan masuk akan mengirimkan intent DIAL
dan menampilkan halaman Dialpad dari Telepon.
-
Tombol telepon dari setir saat ada panggilan masuk menyebabkan
TelecomManager menjawab panggilan.
-
Tombol Akhiri Panggilan dari setir saat ada panggilan masuk, TelecomManager akan mengakhiri panggilan.
-
Bluetooth
-
PBAPClient. Mendownload kontak dari ponsel dan menulis ke
penyedia kontak. Untuk setiap ponsel yang terhubung, akun dibuat dengan alamat MAC
Bluetooth perangkat sebagai nama akun dan com.android.bluetooth.pbapsink
(@string/pbap_account_type
yang ditentukan di packages/apps/Bluetooth
) sebagai
jenis akun. Kontak yang ditulis ke penyedia kontak ditulis dengan informasi
akun dan dihapus saat ponsel terputus. PBAPClient
tidak
berinteraksi langsung dengan Telepon, tetapi menulis kontak ke Penyedia Kontak. Telepon
membaca kontak dari Penyedia Kontak.
-
HfpClientConnectionService
. Mengelola panggilan Bluetooth
melalui HFP dan melaporkan panggilan ke layanan Telekomunikasi.
-
Telekomunikasi. Framework Android Telecom mengelola panggilan audio dan video di
perangkat Android. Karena Telepon adalah aplikasi telepon default, aplikasi ini mengimplementasikan
InCallService
API dan InCallController
akan mengikat implementasi InCallService Telepon untuk
menangani panggilan. Untuk mengetahui detail selengkapnya, lihat
Membuat
aplikasi ponsel pengganti dan
Menjadi
Aplikasi Telepon Default.
-
Setelan Sistem. Telepon memantau daftar perangkat yang terhubung HFP dan menampilkan
pesan error saat tidak ada ponsel yang terhubung ke telepon melalui Bluetooth. Dalam referensi AOSP, tombol Hubungkan ke Bluetooth akan menautkan pengguna ke halaman Setelan Bluetooth sistem untuk menyambungkan perangkat baru atau terhubung ke perangkat yang disambungkan.
-
Mesin Gangguan bagi Pengemudi. Layanan sistem Android ini menerapkan pembatasan
UX berdasarkan kondisi mengemudi mobil. Telepon harus menjalankan semua pembatasan gangguan
berkendara UX.Untuk melakukannya, Telepon harus memproses
CarUXRestrictionManager
dan menerapkan semua kebijakan. Dialer harus:
-
Hubungkan ke library Car
dan dapatkan instance
CarUXRestrictionManager.
-
Berlangganan update dalam daftar
CarUxRestrictions
dan terapkan seperti yang didokumentasikan.
-
Khususnya penting untuk Pemanggil:
-
Halaman setelan dioptimalkan untuk kendaraan. Pengguna tidak dapat mengakses
halaman Setelan Telepon saat mengemudi. Dengan mengetuk menu Setelan dari panel tindakan,
layar pemblokiran akan ditampilkan untuk mencegah pengguna mengakses Setelan saat
mengemudi. Jika halaman Setelan sudah ditampilkan, layar pemblokiran akan muncul untuk menghentikan interaksi pengguna.
-
Setelan sistem tidak dapat diakses saat mengemudi. Di halaman Error,
jika tidak ada perangkat Bluetooth yang terhubung, tombol Connect to Bluetooth akan menampilkan
halaman setelan Bluetooth sistem. UXR tombol ini dibatasi sepenuhnya.
Saat mengemudi, mengklik tombol ini akan menampilkan pesan error untuk memberi tahu
pengguna agar memarkir mobil terlebih dahulu, lalu melakukan tindakan.
-
Pengguna tidak dapat memulai alur tambahkan ke favorit saat mengemudi. Tombol Tambahkan Favorit dinonaktifkan.
Alur penggunaan
Dialer Utama
Berbagai halaman untuk Telepon disediakan di bawah.

Gambar 2. Halaman Dialer utama
Penanganan panggilan
Alur proses penanganan panggilan ditampilkan di bawah:

Gambar 3. Penanganan panggilan
Notifikasi
Berbagai halaman notifikasi ditampilkan di bawah:

Gambar 4. Notifikasi
Status InCall
Alur halaman Dalam Panggilan ditampilkan di bawah:

Gambar 5. Halaman InCall
Telusuri
Tampilan Penelusuran adalah:

Gambar 6. Telusuri
Setelan
Opsi Setelan adalah:

Gambar 7. Setelan
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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"]]