Прежде всего, вам нужно настроить BroadcastReceiver (назовем его «CallReceiver») и разрешение знать состояние телефона (интуитивно, разрешение на добавление составляет android.permission.READ_PHONE_STATE
).
Зарегистрируйте свое действие CallReceiver следующим образом.
<receiver android:name=".CallReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"></action>
</intent-filter>
</receiver>
В CallReceiver вы можете решить, какие действия должны воспроизводить ваше аудио (входящие / исходящие / телефонные звонки ...), поэтому просто прочитайте EXTRA_STATE и getCallState () (посмотрите TelephonyManager документы).
Что касается аудио, вам нужно будет использовать AudioManager и установить режим воспроизведения "in call" перед воспроизведением звука.
private AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_IN_CALL);
am.setSpeakerphoneOn(false);
Надеюсь, это поможет!