Detail Teknis

Diagram berikut menggambarkan komponen sistem yang berinteraksi dengan Dialer:

Komponen yang berinteraksi dengan Dialer

Gambar 1. Komponen yang berinteraksi dengan Dialer

  • Sistem UI. Sisi navigasi bawah untuk menghosting tombol Telepon, yang mendaftarkan intent:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;package=com.android.car.dialer;launchFlags=0x10000000;end niat. Ini memulai aktivitas utama pengguna, TelecomActivity .

  • Peluncur Aplikasi. Mengelola seluruh daftar aplikasi. Dialer mendeklarasikan TelecomActivity dengan android.intent.category.LAUNCHER . Memilih aplikasi telepon dari daftar aplikasi peluncur akan menampilkan TelecomActivity.

  • Widget rumah. Dalam referensi AOSP, tidak ada widget Beranda. OEM mungkin ingin mempertimbangkan untuk menambahkan widget Home untuk Dialer untuk menampilkan status ponsel yang terhubung saat ini (serta informasi lainnya).

  • Pusat Pemberitahuan

    • Heads Up Notification (HUN) ditampilkan untuk panggilan masuk. Ketika Dialer InCallServiceImpl menerima panggilan masuk, Dialer memposting HUN ke pusat Pemberitahuan, yang menunjukkan detail panggilan, seperti nomor telepon atau info kontak. Dialer juga menampilkan dua tombol aksi, Jawab dan Tolak. Dengan menekan tombol Jawab, panggilan dijawab dan InCallServiceImpl menangani panggilan aktif untuk menampilkan UI panggilan Dialer dan mengabaikan HUN. Mengklik HUN menampilkan halaman InCall layar penuh dengan tombol Jawab dan Tolak.

    • Pemberitahuan muncul untuk panggilan tak terjawab yang belum dibaca. Mengeklik notifikasi akan menampilkan halaman Riwayat Panggilan dan menandai panggilan tak terjawab sebagai telah dibaca. Mengetuk tombol Panggil Kembali menempatkan panggilan dan menampilkan antarmuka pengguna InCall Dialer.

  • Asisten. Pengguna dapat meminta asisten untuk melakukan panggilan yang dapat menampilkan antarmuka pengguna Dialer InCall.

  • Google Maps. Memanggil pedagang dari Google Maps mengirimkan maksud DIAL dengan tambahan nomor telepon yang akan memulai halaman Dialpad untuk panggilan cepat.

  • Layanan Masukan Mobil. Memantau kunci fisik tombol Panggil dan Akhiri Panggilan di setir. Menekan:

    • Tombol panggil dari kemudi saat tidak ada panggilan masuk mengirimkan maksud DIAL dan menampilkan halaman Dialpad Dialer.

    • Tombol panggil dari kemudi saat ada panggilan masuk menyebabkan TelecomManager menjawab panggilan tersebut.

    • Tombol Akhiri Panggilan dari kemudi saat ada panggilan masuk, TelecomManager mengakhiri panggilan.

  • Bluetooth

    • Klien PBAP. Download kontak dari telepon dan menulis ke penyedia kontak. Untuk setiap telepon yang terhubung, sebuah akun dibuat dengan alamat MAC Bluetooth perangkat sebagai nama akun dan com.android.bluetooth.pbapsink ( @string/pbap_account_type didefinisikan dalam packages/apps/Bluetooth ) sebagai jenis akun. Kontak yang ditulis ke penyedia kontak ditulis dengan informasi akun dan dihapus saat telepon terputus. PBAPClient tidak berinteraksi langsung dengan Dialer melainkan menulis kontak ke Penyedia Kontak. Dialer membaca kontak dari Penyedia Kontak.

    • HfpClientConnectionService . Mengelola panggilan Bluetooth melalui HFP dan melaporkan panggilan ke layanan Telecom.

  • telekomunikasi. Kerangka kerja Android Telecom mengelola panggilan audio dan video di perangkat Android. Karena Dialer adalah aplikasi telepon default, ini mengimplementasikan API InCallService dan InCallController akan mengikat implementasi InCallService Dialer untuk menangani panggilan. Untuk detail selengkapnya, lihat Membuat aplikasi telepon pengganti dan Menjadi Aplikasi Telepon Default .

  • Pengaturan sistem. Dialer memonitor daftar perangkat yang terhubung ke HFP dan menampilkan pesan kesalahan ketika tidak ada telepon yang terhubung ke dialer melalui Bluetooth. Dalam referensi AOSP, tombol Hubungkan ke Bluetooth menghubungkan pengguna ke halaman Pengaturan Bluetooth sistem untuk memasangkan perangkat baru atau untuk menghubungkan ke perangkat yang dipasangkan.

  • Mesin Pengalih Penggerak. Layanan sistem Android ini memberlakukan batasan UX berdasarkan kondisi mengemudi mobil. Dialer harus menjalankan semua pembatasan gangguan mengemudi UX. Untuk melakukannya, Dialer harus mendengarkan CarUXRestrictionManager dan menerapkan semua kebijakan. Pemanggil harus:

    • Hubungkan ke perpustakaan Mobil dan dapatkan instance CarUXRestrictionManager .

    • Berlangganan pembaruan dalam daftar Pembatasan CarUx dan terapkan seperti yang didokumentasikan.

    • Yang sangat penting bagi Dialer:

      • Halaman pengaturan dioptimalkan untuk kendaraan. Pengguna tidak dapat mengakses halaman Pengaturan Dialer saat mengemudi. Dengan mengetuk menu Pengaturan dari bilah tindakan, layar pemblokiran ditampilkan untuk mencegah pengguna mengakses Pengaturan saat mengemudi. Jika halaman Pengaturan sudah ditampilkan, layar pemblokiran akan muncul untuk menghentikan interaksi pengguna.

      • Pengaturan sistem tidak dapat diakses saat mengemudi. Pada halaman Error, ketika tidak ada perangkat Bluetooth yang terhubung, tombol Connect to Bluetooth akan menampilkan halaman pengaturan Bluetooth sistem. UXR tombol ini sepenuhnya dibatasi. Saat mengemudi, mengklik tombol ini menampilkan pesan kesalahan untuk memberi tahu pengguna untuk memarkir mobil terlebih dahulu dan kemudian melakukan tindakan.

      • Pengguna tidak dapat memulai aliran add-to-favorite saat mengemudi. Tombol Tambahkan Favorit dinonaktifkan.

Alur Pengguna

Telepon Utama

Halaman yang berbeda untuk Dialer disediakan di bawah ini.

Halaman Pemanggil Utama

Gambar 2. Halaman Main Dialer

Penanganan Panggilan

Alur proses penanganan panggilan disajikan di bawah ini:

Penanganan Panggilan

Gambar 3. Penanganan panggilan

Pemberitahuan

Halaman notifikasi yang berbeda ditampilkan di bawah ini:

Pemberitahuan

Gambar 4. Pemberitahuan

Status Dalam Panggilan

Alur halaman InCall ditunjukkan di bawah ini:

halaman InCall

Gambar 5. Halaman InCall

Tampilan Pencarian adalah:

Mencari

Gambar 6. Pencarian

Pengaturan

Opsi Pengaturan adalah:

Pengaturan

Gambar 7. Pengaturan