我正在使用呼叫号码拨打电话应用程序,然后通过以下方式发送 dtmf 音
String number = "tel:+1234567,890#";
Intent c1 = new Intent(android.content.Intent.ACTION_CALL, Uri.parse(number));
目前可以拨1234567,等3秒左右,再拨890。功能还行,但是发890有音,不太符合,有什么方法可以发890没有音回复吗?
我正在使用呼叫号码拨打电话应用程序,然后通过以下方式发送 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_CALL
orACTION_DIAL
和 doing<number>|,;|<tones>
将在连接呼叫后直接发送 DTMF 音,但这就是用户对问题的控制停止的地方。
任何额外的控制,例如发送额外的音调或静音到手机的音调响应,都由内部 API 处理,值得注意的是com.android.internal.telephony
. 值得注意的是stopDtmf()
方法,它可能会做你正在寻找的东西,除了它是内部的并且可能没有一致的行为。
下面是方法的 2.x 源代码。如前所述,不能保证这会起作用,并且强烈建议不要使用内部 API。