Responda llamadas entrantes usando android.telecom e InCallService

Desde API 21, Google ha estado agregando funciones aandroid.telecom en general, especialmente implementando más miembros deTelecomManager y la adición deInCallService. Se supone que este último permite que aplicaciones de terceros que no sean del sistema proporcionen y reemplacen la funcionalidad de la pantalla de llamadas entrantes de la aplicación Llamadas del sistema, la ventana que aparece y permite la acción enEXTRA_STATE_OFFHOOK oEXTRA_STATE_RINGING transmisiones (es decir, llamadas telefónicas entrantes y salientes).

Actualmente, solo esta pantalla tiene control total de las llamadas activas y de llamada y las devoluciones de llamada del sistema asociadas con información detallada, por medio de la restricción de raízMODIFY_PHONE_STATE permiso y una gran cantidad de código AOSP seguro que ni siquiera es accesible por reflexión. Es notablemente una de las piezas de código más cambiadas en los sabores ROM de diferentes fabricantes, junto con el iniciador, los contactos y la cámara.

Todo esto es muy bonito pero ...

¿Cómo se desarrolla realmente un servicio InCall de terceros?

A saber:

¿Cómo se le notifica y adquiere instancias de llamadas GSM?¿Cómo se responden estas llamadas?¿Cuál es el ciclo de vida de las devoluciones de llamada en esta clase?¿Google proporciona algún tutorial real para esto que no he encontrado

No pediré respuestas para todos estos a la vez, pero cualquier respuesta probablemente se asocie con las otras preguntas. Esto es amplio pero intrínsecamente debe serlo: no hay ningún ejemplo en la web con el que me haya topado que no sea el código AOSP, y ese código se basa en la suposición de privilegios de root, lo que lo hace inutilizable para el desarrollo de aplicaciones de terceros. propósitos

Respuestas a la pregunta(3)

Su respuesta a la pregunta