En primer lugar, deberá configurar un BroadcastReceiver (llamémoslo "CallReceiver") y un permiso para saber sobre el estado del teléfono (intuitivamente, el permiso para agregar es android.permission.READ_PHONE_STATE
).
Registre su acción CallReceiver de esta manera.
<receiver android:name=".CallReceiver" android:enabled="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"></action>
</intent-filter>
</receiver>
A su CallReceiver, puede decidir qué acciones deben reproducir el audio de vuelta (entrada/outcoming/timbre del teléfono ...), por lo que acaba de leer el EXTRA_STATE y getCallState() (echa un vistazo a los documentos TelephonyManager)
Acerca del audio, necesitará usar el AudioManager, y establecer el modo de reproducción "in call" antes de reproducir el sonido.
private AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
am.setMode(AudioManager.MODE_IN_CALL);
am.setSpeakerphoneOn(false);
Espero que esto ayude!
Hola He desarrollado la siguiente aplicación, hace lo mismo, revise esta aplicación si soluciona su problema, entonces puedo enviarle el código fuente. https://market.android.com/details?id=com.devindia.acr&feature=search_result –
@KPBird, parece que puede hacer el truco. Agradecería que enviaras el código para que lo revisemos. Gracias por la oferta. – CraigInDallas
Hola voy a subir el código hoy ... –