自定义拨号器,如何通过呼叫发送“1”或“2”。当您致电客户服务并且他们需要输入时
Custom dialler, how can I send "1" or "2" via the call. For when you call a customer service and they need input
所以我有这段代码,它接听我当前的电话并播放 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())
}
}
但我会打电话给一家大公司。然后机器进入。
"For sales press 1, for accounting press 2" 等等
我按下我的布局视图,代码被调用,当前调用存在,但即使如此,调用也不会接受我的输入。它没有响应我按下的内容。
我做错了什么?
我尝试了多个默认拨号器并发现 Drupe:https://play.google.com/store/apps/details?id=mobi.drupe.app&gl=NL
可以发送DTMF音,所以我认为这是可能的。
已修复:
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)
}
发送了错误的字符
所以我有这段代码,它接听我当前的电话并播放 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())
}
}
但我会打电话给一家大公司。然后机器进入。 "For sales press 1, for accounting press 2" 等等 我按下我的布局视图,代码被调用,当前调用存在,但即使如此,调用也不会接受我的输入。它没有响应我按下的内容。 我做错了什么?
我尝试了多个默认拨号器并发现 Drupe:https://play.google.com/store/apps/details?id=mobi.drupe.app&gl=NL 可以发送DTMF音,所以我认为这是可能的。
已修复:
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)
}
发送了错误的字符