2

所以我有这个代码,它可以接听我当前的电话并播放 DTMF 音:

if (CallManager.currentCall != null) {
        when (pressed) {
            10 -> CallManager.currentCall?.playDtmfTone("*".toCharArray()[0])
            11 -> CallManager.currentCall?.playDtmfTone("#".toCharArray()[0])
            else -> CallManager.currentCall?.playDtmfTone(pressed!!.toChar())
        }

    }

但我打了一个电话,例如打给一家大公司。机器进入。“对于销售按 1,对于会计按 2”等等我按我的布局视图,代码被调用,当前调用存在,但即便如此,调用也不接受我的输入。它对我按下的内容没有反应。我究竟做错了什么?

我尝试了多个默认拨号器,发现 Drupe:https ://play.google.com/store/apps/details?id=mobi.drupe.app&gl=NL 可以发送 DTMF 音,所以我认为这是可能的。

4

1 回答 1

0

这修复了它:

 fun pressed(pressed: Int?) {
    if (SIPManager.instance != null && SIPManager.instance?.numberOfActiveCalls ?: 0 > 0) {
        SIPManager.instance!!.sendDTMF(null, pressed)
    }
    if (CallManager.currentCall != null) {
        when (pressed) {
            10 -> playDTMF("*".toCharArray()[0])
            11 -> playDTMF("#".toCharArray()[0])
            else -> playDTMF(pressed!!.toString().toCharArray()[0])
        }
    }
}

fun playDTMF(value: Char) {
    Log.i("DTMF", "DTMF char is: " + value)
    CallManager.currentCall!!.playDtmfTone(value)
    Handler().postDelayed({
        CallManager.currentCall!!.stopDtmfTone()
    }, 250)
}

发送了错误的字符

于 2019-08-23T13:00:25.763 回答