我想知道我们是否可以在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
我已经做到了,所以我知道这是可能的。
祝好运