我想知道我们是否可以在android中接收到dtmf音。假设,我正在接到一个电话,一旦我接受了这个电话,是否有可能检测到对方在我们通话中按下的键。我已经经历了许多关于这个的堆栈溢出问题,但大多数都没有提供解决方案。
如何通过Java反射或类似的方式实现它?之前所有的帖子都是2.2和3.0版本的,现在我们是4.0和4.0以上版本的,那么有没有可能是4或4.0以上版本的呢?
提前谢谢

最佳答案

在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
我做到了,所以我知道这样做是可能的。
祝你好运

08-15 20:13