Bu kılavuz, ses ve duyulabilir cihaz durumunu kendilerinin yönetmek isteyen, İnternet Üzerinden Ses Protokolü (VoIP) gibi iletişim uygulamalarını kapsar.
Sesli geri arama kaydet
Öncelikle, ses cihazları cihaza bağlandığında veya cihazda bağlantı kesildiğinde uygulamanızı bilgilendirecek bir AudioDeviceCallback
oluşturun.
val audioDeviceCallback: AudioDeviceCallback = object : AudioDeviceCallback() { override fun onAudioDevicesAdded(addedDevices: Array) {} override fun onAudioDevicesRemoved(removedDevices: Array ) {} } audioManager.registerAudioDeviceCallback(audioDeviceCallback)
final AudioDeviceCallback audioDeviceCallback = new AudioDeviceCallback() { @Override public void onAudioDevicesAdded(AudioDeviceInfo[] addedDevices) { } @Override public void onAudioDevicesRemoved(AudioDeviceInfo[] removedDevices) { // Handle device removal } }; audioManager.registerAudioDeviceCallback(audioDeviceCallback);
Etkin iletişim cihazı olup olmadığını kontrol edin
Ses yöneticisi, hangi iletişim cihazının etkin durumda olduğunu size bildirir.
val currentCommunicationDevice: AudioDeviceInfo? = audioManager.communicationDevice
AudioDeviceInfo currentCommunicationDevice = audioManager.getCommunicationDevice();
Bir iletişim cihazının değiştiğini dinlemek, yönlendirme uygulandığında ve seçtiğiniz cihaz etkin olduğunda uygulamanızın bundan haberdar olmasını sağlar.
val listener = OnCommunicationDeviceChangedListener { device -> // Handle changes currentCommunicationDevice = device } audioManager.addOnCommunicationDeviceChangedListener(executor, listener)
AudioManager.OnCommunicationDeviceChangedListener listener = new AudioManager.OnCommunicationDeviceChangedListener() { @Override void onCommunicationDeviceChanged(AudioDeviceInfo device) { // Handle changes currentCommunicationDevice = device; } }; AudioManager.addOnCommunicationDeviceChangedListener(executor, listener);
BDE ses sistemi bul
VoIP araması için hangi cihazların uygun olduğunu görmek istiyorsanız getAvailableCommuncationDevices()
simgesini kullanın. Cihazın bir BDE mikrofonlu kulaklık olup olmadığını görmek için AudioDeviceInfo
öğesini kullanın. Bu örnekte, BLE Audio'yu destekleyen ilk cihaz aranır, ancak desteklenen tüm cihazları bulup kullanıcıların seçmesine izin vermeyi de düşünebilirsiniz.
// Get list of currently available devices
val devices = audioManager.availableCommunicationDevices
// User choose one of the devices, let's say, TYPE_BLE_HEADSET
val userSelectedDeviceType = AudioDeviceInfo.TYPE_BLE_HEADSET
//for the device from the list
var selectedDevice: AudioDeviceInfo? = null
for (device in devices) {
if (device.type == userSelectedDeviceType) {
selectedDevice = device
break
}
}
// Get list of currently available devices
List
İletişim cihazını ayarla
Uyumlu bir cihaz bulduktan sonra yönlendirme yapmak istediğiniz cihazı ayarlamak için setCommunicationDevice
öğesini kullanın. Sonucu kontrol etmek, uygulamanıza ses yöneticisi cihazı ayarlamaya mı çalışıyor yoksa bir hatayla mı karşılaştığını bildirir.
val result = audioManager.setCommunicationDevice(selectedDevice)
if (!result) {
// Handle error.
}
// Wait for currentCommunicationDevice to become selectedDevice with a timeout (e.g. 30s)
boolean result = audioManager.setCommunicationDevice(selectedDevice);
if (!result) {
// Handle error.
}
// Wait for currentCommunicationDevice to become selectedDevice with a timeout (e.g. 30s)
BDE Audio cihazı ayarlandığına göre arama yaparken ses yayını doğru ses yönlendirmesine sahip olacaktır.
Oturumu sonlandır
Uygulamanız bir aramayı veya oturumu bitirdikten sonra etkin iletişim cihazını temizleyin. Bu, kullanıcının farklı uygulamalar arasında geçiş yaparken harika bir deneyim yaşamasına yardımcı olur.
// Clear the selection, ready for next call
audioManager.clearCommunicationDevice()
// Clear the selection, ready for next call
audioManager.clearCommunicationDevice();