在Android上接收来电时的DTMF检测

时间:2013-02-15 07:09:11

标签: android

我想知道我们是否可以在android.Suppose中收到DTMF音,我正在接听电话,一旦我接听电话,是否有可能在通话期间检测到对方正在按下的键。我已经经历了很多有关此问题的堆栈溢出问题,但大多数都没有提供解决方案。

如何通过java反射或类似的方式实现它。所有早期的帖子都是针对2.2和3.0版本的。目前我们在4.0及以上版本,所以它可能在4或以上的版本中吗?

提前致谢

1 个答案:

答案 0 :(得分:3)

在SDK中没有可以执行此操作的程序包。

首先,您需要收听发言人的声音,因为您无法录制语音电话:

AudioManager mAudioManager = (AudioManager) Sos.getContext().getSystemService(Context.AUDIO_SERVICE);
int maxVolume = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
mAudioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL, maxVolume, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
mAudioManager.setSpeakerphoneOn(true);

并且,这个项目可以帮助你:

http://code.google.com/p/dtmf-decoder/source/checkout

我已经这样做了,所以我知道这种方式是可行的。

祝你好运