Android:来电自动应答,播放音频文件

时间:2012-10-17 07:43:40

标签: android audio-streaming

在Android中,在来电时,我想收到它。然后,从我的应用程序,在通话过程中自动播放音频文件,另一方应听到它。这可能吗?

4 个答案:

答案 0 :(得分:11)

你所谈论的内容对于android来说是不可能的。 Android无法访问通话中的音频流。

虽然我可以告诉你如何做到这一点。

首先拦截来电,你需要注册一个广播接收器,无论何时收到呼叫都会被调用

public void onReceive(final Context context, Intent intent) 
{
    TelephonyManager telephonyManager = null;
    PhoneStateListener listener = new PhoneStateListener() 
    {
        public void onCallStateChanged(int state, String incomingNumber) 
        {
            switch (state) 
            {
            case TelephonyManager.CALL_STATE_IDLE:
                Toast.makeText(context, "Call Ended..", Toast.LENGTH_LONG).show();
                Log.i("stop", "Call Ended....");
                break;
            case TelephonyManager.CALL_STATE_OFFHOOK:
                Toast.makeText(context, "Call Picked..", Toast.LENGTH_LONG) .show();
                Log.i("received", "Call Picked....");
                break;
            case TelephonyManager.CALL_STATE_RINGING:
                Toast.makeText(context, "Call Ringing.." + incomingNumber,5000).show();
                break;
            }
        }
    };
    // Register the listener with the telephony manager
    telephonyManager.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);

同时更改您的清单

<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <receiver android:name="MyReceiver">

            <intent-filter>

                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />



            </intent-filter>
        </receiver>
    </application>

有了这个,你可以拦截来电并接听电话,现在你可以尝试在

中播放一些mp3文件
case TelephonyManager.CALL_STATE_OFFHOOK:
                // Play mp3 file here
                break;

希望它有所帮助。必须尝试这个并告诉我体验。

答案 1 :(得分:3)

您无法直接向来电者播放任何内容。如果你想通过扬声器播放,但这不是你想要的。所以“不”,你不能这样做。

答案 2 :(得分:2)

答案 3 :(得分:0)

在Android中没有选项可以对抗实时通话或将音频源切换到默认麦克风以外的其他内容!以下是why you can't play recordings during a live call

的详细信息

然而,有一些技巧,

  1. 您可以在通话期间通过移动扬声器播放所需的录音!麦克风会从那里挑选吗?
  2. 或者您可以将免提扬声器线连接到其Mic线
  3. 或者使用bluetooh从其他设备播放所需的录音
相关问题