【发布时间】:2013-04-30 10:40:08
【问题描述】:
我想开发一个应用程序,如果来电者呼叫您,呼叫应自动接听,无需用户参与,来电者可以听到预先录制的语音,该语音已被录制并保存。音频文件应该在 . wav 格式。我在 google 中搜索了帮助,但我开始知道这在 Android 中是不可能的,但是有一些 android 应用程序具有相同的功能。所以我认为这有一些可能性。如果问题是错误的,请见谅.如果有人帮助我,我将不胜感激。我正在使用带有 ADT 插件的 eclipse Helios。我已经尝试了下面的代码,但没有成功。如果有人知道答案,请帮助我。我使用广播接收器读取手机状态变化。在 CALL_STATE_OFFHOOK 中,我编写了以下代码。
case TelephonyManager.CALL_STATE_OFFHOOK:
Toast.makeText(context, "Call Picked..", Toast.LENGTH_LONG) .show();
Log.d("received", "Call Picked....");
final MediaPlayer mPlayer = MediaPlayer.create(context, R.raw.music_file);
mPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL);
mPlayer.prepareAsync();
mPlayer.start();
mPlayer.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
// TODO Auto-generated method
mPlayer.reset();
return true;
}
});
AudioManager am=(AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_IN_CALL);
am.setSpeakerphoneOn(false);
am.setMicrophoneMute(true);
Log.d("in call","sent audio");
mPlayer.reset();
mPlayer.release();
break;
【问题讨论】:
-
尚未尝试实现该功能 - 只是做一些研究。据我所知,这是可能的!想一想所有的蓝牙扬声器和类似的东西。他们正在将声音传输到通话中的电话。现在我也需要这个功能。我会努力弄清楚的。
-
@YuraSokolov,你找到什么了吗?如果您能就此向我们提供最新信息,将不胜感激:)
-
不,抱歉@longwalker,我找不到解决方案。
-
@Kishwar 你找到解决方案了吗?
标签: android media-player telephonymanager android-audiomanager