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



我想知道我们是否可以在android中接收DTMF音调。假设我接到一个电话,一旦我接了电话,是否有可能检测到对方在通话中按下的键。我已经讨论了许多关于堆栈溢出的问题,但其中大多数都没有提供解决方案。

通过java反射或类似的东西来实现它怎么样。?所有早期的帖子都是针对2.2和3.0版本的。目前我们处于4.0及以上版本,那么在4或以上版本中可能吗?

提前感谢

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

我已经做到了,所以我知道这是可能的。

祝好运

最新更新