VoIP uygulamaları için Android 14'te ses yönlendirme API güncellemeleri

Android 14'te, işitme cihazları da dahil olmak üzere Bluetooth LE Audio (LEA) cihazlarının ses yönlendirme davranışında yapılan kullanıcı deneyimi değişiklikleriyle birlikte API güncellemeleri kullanıma sunuldu. Bu değişiklikler, VoIP uygulamalarının ses çıkışı seçimini yönetme şeklini etkiledi. Bu dokümanda, geliştiricilerin VoIP uygulamalarını bu değişikliklere uyarlamaları ve sorunsuz bir kullanıcı deneyimi sunmaları için gerekli bilgiler sağlanmaktadır.

Android 14'te davranış değişikliği

  • LEA cihaz yönlendirmesi: LEA cihazları artık Pixel telefonlarda ve AOSP'de varsayılan olarak etkindir. Ancak LEA cihazlarını ses çıkışı olarak etkin bir şekilde tanıyıp seçmek için uygulamaların API düzeyi 31'de kullanıma sunulan yeni API'leri kullanması gerekir.
  • İşitme cihazı yönlendirmesi: Önceden, kullanıcı kulaklığı açıkça seçse bile ses her zaman varsayılan olarak işitme cihazlarına yönlendiriliyordu. Android 14'te işitme cihazları, mevcut ses çıkışı seçeneklerinden biri olarak sunulur ve kullanıcının açıkça seçmesi gerekir.

Değişikliğin gerekçesi

  • Android 12'den önce, aramalar için işitme cihazlarını açıkça kullanacak bir API yoktu. Bu nedenle, bağlıyken ses her zaman varsayılan olarak işitme cihazlarına yönlendiriliyordu.
  • Bu durum, kullanıcıların işitme cihazlarının bağlantısını kesmeden işitme cihazlarından kulaklıklara geçmesini zorlaştırıyordu.
  • Aynı sorun Bluetooth LE Audio kulaklıklar için de geçerliydi.

Android 14, bu zorlukları gidermek için VoIP uygulamalarına ses yönlendirme üzerinde daha fazla kontrol sağlamak ve Bluetooth aksesuarlarında tutarlı davranış sağlamak amacıyla değişiklikler yaptı.

Android 14'teki önemli değişiklikler

  • Rota seçimi için genel API'ler: Android 12, uygulamaların işitme cihazları ve LEA cihazları dahil olmak üzere ses rotalarını belirtmesine olanak tanımak için AudioManager.setCommunicationDevice API'sini kullanıma sundu. Ancak Android 12 ve 13'te işitme cihazları cihaz olarak görünmediğinden bu API'nin yararlılığı sınırlıydı.
  • İşitme cihazlarının görünürlüğü: Android 14'te işitme cihazları artık cihaz olarak görünür. Bu sayede uygulamalar, kullanıcıların tercih ettikleri ses çıkışını seçmeleri için kullanıcı arayüzü öğeleri sağlayabilir.
  • API'lerin desteğinin sonlandırılması: Android 14'te ses yönlendirmeyle ilgili birkaç API'nin desteği sonlandırıldı. Geliştiricilerin, ses çıkışı seçimini etkili bir şekilde yönetebilmek için API düzeyi 31'de kullanıma sunulan yeni API'lere geçmesi gerekir.

Gerekli geliştirici işlemleri

  • Önerilen: Telecom Jetpack Kitaplığı'na geçin. Mümkünse VoIP uygulamanızı, ses yönlendirme yönetimini kolaylaştırmak için Telecom Jetpack kitaplığına taşıyın.
  • Taşıma uygun değilse setCommunicationDevice() veya en son API'leri (aşağıda listelenmiştir) kullanın.

Kullanımdan kaldırılan API'ler ve bunların yerine kullanılan API'ler

Android 14'te desteği sonlandırıldı Yeni API'ler
AudioManager.isBluetoothScoOn() AudioManager.getCommunicationDevice()
AudioManager.isSpeakerphoneOn()
AudioManager.setSpeakerphoneOn() SesYöneticisi.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()