Подтвердить что ты не робот

Android: автоматический ответ входящего вызова, воспроизведение аудиофайла

В Android, во время входящего вызова, я хочу его получить. Затем, из моего приложения, автоматически воспроизводить аудиофайл во время разговора, а другая сторона должна его услышать. Возможно ли это?

4b9b3361

Ответ 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>
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
    <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;

Надеюсь, это поможет. Должен попробовать это и рассказать мне об этом.

Ответ 2

Вы не можете напрямую играть с вызывающим. Если вы хотите, чтобы вы играли через громкоговоритель, но это не совсем то, что вы хотите. Итак, "нет", вы не можете этого сделать.

Ответ 4

В андроиде нет возможности играть против живого вызова или переключать источник звука на другое, чем по умолчанию Mic! вот подробности, которые почему вы не можете воспроизводить записи во время живого вызова

Однако есть некоторые трюки,

  • Вы можете воспроизводить нужную запись из мобильного динамика во время разговора! микрофон выберет его оттуда?
  • Или вы можете подключить громкоговорители для громкой связи к микрофонному проводу
  • Или используйте bluetooh с другого устройства для воспроизведения желаемой записи.