Audioausgabe für Anrufe (Android)

Um eine nahtlose Umschaltung der Audioausgabe innerhalb Ihrer Anwendung zu ermöglichen, sollten Sie das Android-Telecom-Framework integrieren. Mit Telecom kann Ihre App Anrufdienste effizient verwalten und so ein reibungsloses Nutzererlebnis gewährleisten. Weitere Informationen finden Sie in der offiziellen Android-Dokumentation zu Telecom. hier.

Integration der Telekommunikation

Umfassende Anleitungen zur Integration des Telecom-Frameworks in Ihr Projekt finden Sie unter Telekommunikationsintegration.

Beobachtung von Änderungen bei der Audioausgabe

Sie können die Delegate-Methode abonnieren onCallAudioStateChanged oder onCallEndpointChanged um Veränderungen in der Audioausgabe zu beobachten.

So geht's:

Für Android API 33 und darunter

override fun onCallAudioStateChanged(state: CallAudioState?) {
        state ?: return
        // highlight-next-line
        println("New call route: ${state.route}")
}

Für Android API 34 und höher

override fun onCallEndpointChanged(callEndpoint: CallEndpoint) {
        // highlight-next-line
        println("New call endpoint: ${callEndpoint}")
}

Sie können die Audioausgabequelle auch wie folgt überschreiben: setAudioRoute oder requestCallEndpointChange :

Für Android API 33 und darunter

call.setAudioRoute(CallAudioState.ROUTE_BLUETOOTH)

Für Android API 34 und höher

override fun onAvailableCallEndpointsChanged(availableEndpoints: List<CallEndpoint>) {
        for (endpoint in availableEndpoints) {
            if (endpoint.endpointType == CallEndpoint.ENDPOINT_TYPE_BLUETOOTH) {
                requestCallEndpointChange(
                    endpoint,
                    Executor { it.run() },
                    object : OutcomeReceiver<Void, CallEndpointException> {
                        override fun onResult(result: Void?) {
                            // Successfully switched to Bluetooth
                        }

                        override fun onError(error: CallEndpointException) {
                            // Handle error during endpoint change
                        }
                    }
                )
                break
            }
        }
}

Wir empfehlen, diese Methoden zur Weiterleitung der Audioausgabe zu vermeiden und sich ausschließlich auf die integrierte Benutzeroberfläche von Telecom zu verlassen, um ein besseres Erlebnis zu gewährleisten.