9

我正在使用呼叫号码拨打电话应用程序,然后通过以下方式发送 dtmf 音

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

目前可以拨1234567,等3秒左右,再拨890。功能还行,但是发890有音,不太符合,有什么方法可以发890没有音回复吗?

4

1 回答 1

1

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

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

任何额外的控制,例如发送额外的音调或静音到手机的音调响应,都由内部 API 处理,值得注意的是com.android.internal.telephony. 值得注意的是stopDtmf()方法,它可能会做你正在寻找的东西,除了它是内部的并且可能没有一致的行为。

下面是方法的 2.x 源代码。如前所述,不能保证这会起作用,并且强烈建议不要使用内部 API。

于 2013-10-10T21:44:01.817 回答