【问题标题】:Android: Incoming call auto answer, play a audio fileAndroid:来电自动接听,播放音频文件
【发布时间】:2012-10-07 10:13:22
【问题描述】:

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

【问题讨论】:

    标签: android audio-streaming


    【解决方案1】:

    你所说的在 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;
    

    希望对您有所帮助。一定要试试这个,告诉我经验。

    【讨论】:

    • 好的,我会尽力让你知道的。
    • 只是想知道是否可以直接在通话中播放音频。其他地方似乎表明没有,但这个只是悬而未决。
    • 这似乎表明你可以做到这一点。 play.google.com/store/apps/…..
    • 两次相同的权限?
    【解决方案2】:

    您不能直接向呼叫者播放任何内容。如果你想通过扬声器播放,但这并不是你真正想要的。所以“不”,你不能那样做。

    【讨论】:

      【解决方案3】:

      【讨论】:

        【解决方案4】:

        在 android 中,没有选项可以播放实时通话或将音频源切换到默认麦克风以外的其他东西!这是why you can't play recordings during a live call

        的详细信息

        不过有一些技巧,

        1. 您可以在通话期间从移动扬声器播放所需的录音!麦克风会从那里拾取吗?
        2. 或者您可以将免提扬声器线连接到其麦克风线
        3. 或使用其他设备上的蓝牙播放所需的录音

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-04-14
          • 2011-07-21
          • 2022-01-16
          • 1970-01-01
          • 2012-12-07
          • 1970-01-01
          • 2019-08-31
          • 1970-01-01
          相关资源
          最近更新 更多