拨号时隐藏dtmf音调



我正在制作一个带有呼叫号码的呼叫应用程序,然后通过发送dtmf音调

String number = "tel:+1234567,890#";
Intent c1 = new Intent(android.content.Intent.ACTION_CALL, Uri.parse(number));

目前它可以拨打1234567,等待大约3秒,然后拨打890。功能还可以,但它用音调发送890,这种不太合适,有没有办法在没有音调响应的情况下发送890?

开发人员无法通过公共API实现这一点。不幸的是,Android不能很好地处理DTMF控制。例如,有一个两年前的功能请求,允许用户在通话期间的任意时间发送DTMF控件;它已经被废弃了。

如您所知,使用ACTION_CALLACTION_DIAL并执行<number>|,;|<tones>将在连接呼叫后直接发送DTMF音调,但这就是用户对问题的控制停止的地方。

任何额外的控制,如向手机发送额外的音调或静音音调响应,都由内部API处理,值得注意的是com.android.internal.telephony。值得注意的是stopDtmf()方法,它可能会做你想要做的事情,只是它是内部的,可能没有一致的行为。

以下是该方法的2.x源代码的样子。如前所述,不能保证这会起作用,强烈反对使用内部API。

最新更新