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

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

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

То, о чем вы говорите, не совсем возможно с 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; 

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

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

Попробуйте использовать telephonymanager, он содержит события, которые вы ищете:

  1. http://developer.android.com/reference/android/telephony/TelephonyManager.html#ACTION_PHONE_STATE_CHANGED

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

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

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