Update API pemilihan rute audio di Android 14 untuk aplikasi VoIP

Android 14 memperkenalkan update API yang disertai dengan perubahan pengalaman pengguna pada perilaku pemilihan rute audio untuk perangkat Bluetooth LE Audio (LEA), termasuk alat bantu dengar. Perubahan ini memengaruhi cara aplikasi VoIP mengelola pemilihan output audio. Dokumen ini memberikan informasi penting bagi developer untuk menyesuaikan aplikasi VoIP mereka dengan perubahan ini dan memastikan pengalaman pengguna yang lancar.

Perubahan perilaku di Android 14

  • Pemetaan perangkat LEA: Perangkat LEA kini diaktifkan secara default di ponsel Pixel dan AOSP. Namun, untuk secara aktif mengenali dan memilih perangkat LEA sebagai output audio, aplikasi harus menggunakan API baru yang diperkenalkan di API level 31.
  • Pemetaan alat bantu dengar: Sebelumnya, audio akan selalu ditetapkan secara default ke alat bantu dengar, meskipun pengguna secara eksplisit memilih earpiece. Di Android 14, alat bantu dengar dengar kini ditampilkan sebagai salah satu opsi output audio yang tersedia, sehingga memerlukan pemilihan eksplisit oleh pengguna.

Alasan perubahan

  • Sebelum Android 12, tidak ada API untuk menggunakan alat bantu dengar secara eksplisit untuk panggilan, sehingga audio selalu ditetapkan secara default ke alat bantu dengar saat terhubung.
  • Hal ini menyulitkan pengguna untuk beralih dari alat bantu dengar ke alat bantu dengar tanpa memutuskan sambungan alat bantu dengar mereka.
  • Masalah yang sama berlaku pada headset Bluetooth LE Audio.

Untuk mengatasi tantangan ini, Android 14 memperkenalkan perubahan untuk memberi aplikasi VoIP lebih banyak kontrol atas pemilihan rute audio dan memastikan perilaku yang konsisten di aksesori Bluetooth.

Perubahan utama di Android 14

  • API generik untuk pemilihan rute: Android 12 memperkenalkan AudioManager.setCommunicationDevice untuk memungkinkan aplikasi menentukan rute audio, termasuk alat bantu dengar dan perangkat LEA. Namun, di Android 12 dan 13, alat bantu dengar tidak terlihat sebagai perangkat, sehingga membatasi kegunaan API ini.
  • Visibilitas alat bantu dengar: Di Android 14, alat bantu dengar kini terlihat sebagai perangkat, sehingga aplikasi dapat menyediakan elemen UI bagi pengguna untuk memilih output audio yang mereka inginkan.
  • Penghentian Penggunaan API: Beberapa API yang terkait dengan pemilihan rute audio telah tidak digunakan lagi di Android 14. Developer harus bermigrasi ke API baru yang diperkenalkan di API level 31 untuk mengelola pemilihan output audio secara efektif.

Tindakan developer yang diperlukan

  • Sangat Direkomendasikan: Bermigrasi ke Library Jetpack Telecom. Jika memungkinkan, migrasikan aplikasi VoIP Anda ke library Jetpack Telekomunikasi untuk pengelolaan pemilihan rute audio yang disederhanakan.
  • Gunakan setCommunicationDevice() atau API terbaru (tercantum di bawah) jika migrasi tidak memungkinkan.

API yang tidak digunakan lagi dan penggantinya

Tidak digunakan lagi di Android 14 API baru
AudioManager.isBluetoothScoOn() AudioManager.getCommunicationDevice()
AudioManager.isSpeakerphoneOn()
AudioManager.setSpeakerphoneOn() AudioManager.setCommunicationDevice()
AudioManager.startBluetoothSco()
AudioManager.stopBluetoothSco() AudioManager.clearCommunicationDevice()
Connection.getCallAudioState() Jetpack:
CallControlScope.getAvailableEndpoints()
CallControlScope.getCurrentCallEndpoint()
CallControlScope#isMuted()

Platform:
CallEventCallback.onAvailableCallEndpointsChanged()
CallEventCallback.onCallEndpointChanged()
CallEventCallback.onMuteStateChanged()
Connection.onCallAudioStateChanged()
Connection.requestBluetoothAudio() Jetpack:
CallControlScope#requestEndpointChange()

Platform:
CallControl#requestCallEndpointChange()
Connection.setAudioRoute()