From 3ffda24b828e971f1fb5a571f9bed4568b9af0fa Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 1 Dec 2025 10:11:31 +0100 Subject: [PATCH] Workaround missing audio focus requests & wrong audio manager mode when TelecomManager APIs aren't available on device --- .../org/linphone/telecom/TelecomManager.kt | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/linphone/telecom/TelecomManager.kt b/app/src/main/java/org/linphone/telecom/TelecomManager.kt index 4a9867f92..15e89a8a7 100644 --- a/app/src/main/java/org/linphone/telecom/TelecomManager.kt +++ b/app/src/main/java/org/linphone/telecom/TelecomManager.kt @@ -68,15 +68,14 @@ class TelecomManager } } + private val hasTelecomFeature = context.packageManager.hasSystemFeature("android.software.telecom") + private var currentlyFollowedCalls: Int = 0 init { - val hasTelecomFeature = - context.packageManager.hasSystemFeature("android.software.telecom") Log.i( "$TAG android.software.telecom feature is [${if (hasTelecomFeature) "available" else "not available"}]" ) - try { callsManager.registerAppWithTelecom( CallsManager.CAPABILITY_BASELINE or @@ -194,12 +193,21 @@ class TelecomManager @WorkerThread fun onCoreStarted(core: Core) { Log.i("$TAG Core has been started") - core.addListener(coreListener) + if (hasTelecomFeature) { + core.addListener(coreListener) + } else { + Log.w( + "$TAG android.software.telecom feature is not available, enable audio focus requests in Linphone SDK" + ) + coreContext.core.config.setBool("audio", "android_disable_audio_focus_requests", false) + } } @WorkerThread fun onCoreStopped(core: Core) { Log.i("$TAG Core is being stopped") - core.removeListener(coreListener) + if (hasTelecomFeature) { + core.removeListener(coreListener) + } } }