1

我一直在使用 Kotlin 在 Android Studio 中构建一个独立的呼叫应用程序tutorialhttps ://developer.android.com/guide/topics/connectivity/telecom/selfManaged

我已经实现了所有必要的东西,并多次阅读了整个文档,但我仍然无法让我的代码正常工作。我遇到的问题是接听来电和拨打电话。

传入调用:根据 Logcat,每个函数都以正确的顺序调用。但是,当有来电时,我总是会收到以下信息:

I/TelecomFramework: CallHandler: reject TC@71_1: (...->CSW.hCCC)->CS.r->H.CS.r(cet/cast/cast)@E-E-E-Bn0

I/TelecomFramework: CallHandler: notifyCreateConnectionComplete TC@71_1: (...->CSW.hCCC)->CS.crCoC->H.CS.crCoC(cet/cast)@E-E-E-Bn0

CallHandler是我实现的类之一,它扩展了ConnectionService. 该类中没有拒绝呼叫的函数或命令(如信息中所示)。当我尝试使用call.answer()或接听电话时connection.setActive(),应用程序崩溃且没有任何错误消息。我已经尝试过调试以及我想到的所有其他事情,但我找不到解决方案。

拨出电话:我真的不知道为什么这不起作用,似乎连连接都没有建立。再次以正确的顺序调用每个函数,我没有收到任何错误消息。我得到以下信息:

I/TelecomFramework: CallHandler: notifyCreateConnectionComplete TC@173_1: (...->CSW.hCCC)->CS.crCoC->H.CS.crCoC(cast)@E-E-E-gX

I/TelecomFramework: CallHandler: onAudioStateChanged TC@173_1 [AudioState isMuted: false, route: EARPIECE, supportedRouteMask: EARPIECE, SPEAKER, activeBluetoothDevice: [null], supportedBluetoothDevices: []]: CS.cASC->H.CS.cASC@AAE

这是CallHandler课程:

class CallHandler : ConnectionService(){

    @RequiresApi(Build.VERSION_CODES.O)
    override fun onCreateOutgoingConnection(
        connectionManagerPhoneAccount: PhoneAccountHandle?,
        request: ConnectionRequest?
    ): Connection {
        //return super.onCreateOutgoingConnection(connectionManagerPhoneAccount, request)

        val callConnection = CallConnection(applicationContext)

        callConnection.setInitializing()
        callConnection.setInitialized()
        callConnection.setDialing()
        callConnection.setActive()

        Log.i("CallHandler", "onCreateOutgoingConnection called")

        return callConnection
    }


    @RequiresApi(Build.VERSION_CODES.O)
    override fun onCreateIncomingConnection(
        connectionManagerPhoneAccount: PhoneAccountHandle?,
        request: ConnectionRequest?
    ): Connection {
      //  super.onCreateIncomingConnection(connectionManagerPhoneAccount, request)

        val callConnection = CallConnection(applicationContext)
        callConnection.setRinging()
        callConnection.setInitializing()
        Log.i("CallHandler", "onCreateIncomingConnection Called")

        return callConnection
    }

我已经删除了onCreateIncomingConnectionFailed(和传出的)功能,因为它们所做的只是展示祝酒词。是在其 initCallConnection()中扩展connection和设置的类。connectionProperties = PROPERTY_SELF_MANAGED

我真的很感激任何帮助。我一直在寻找这个问题好几天了,但没有找到原因或解决方案。

4

0 回答 0