android - que - Detecta si una llamada saliente ha sido respondida
identificador de llamadas gratis (4)
En lo que respecta al administrador de telefonía de Android, no se puede detectar mediante programación si la llamada ha sido respondida o no. Es decir, no tiene la opción de saber cuándo el usuario eligió el teléfono en el otro extremo. Android tiene 3 estados de administrador de telefonía y ninguno de ellos es capaz de detectar si la llamada fue respondida o no (EN CASO DE LLAMADAS SALIENTES)
Una vez que se ha emitido ACTION_NEW_OUTGOING_CALL
, necesito capturar el siguiente evento de la respuesta de la otra parte. ¿Podría aconsejarme sobre cómo lograr eso, por favor? Sé que es posible ya que la aplicación del marcador de Android cambia el ícono de Android verde a la foto de la persona de manera exagerada cuando retoman. ¡Gracias!
ACTUALIZADO: he echado un vistazo a la fuente de la aplicación en Android que maneja las llamadas salientes. Noté el siguiente método en ContactsUtils
:
/**
* Kick off an intent to initiate a call.
*/
public static void initiateCall(Context context, CharSequence
phoneNumber) {
Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
Uri.fromParts("tel", phoneNumber.toString(), null));
context.startActivity(intent); }
Supongo que mi respuesta está en la actividad de escuchar Intent.ACTION_CALL_PRIVILEGED
. Entonces, para replantear mi pregunta: ¿Alguien sabe qué actividad maneja Intent.ACTION_CALL_PRIVILEGED
? Gracias por adelantado
La única forma en que puede hacer esto es mediante el análisis de los registros de Logcat , no hay ningún evento PhoneStateListener disponible para eso.
Algunos lo están pidiendo aquí: https://code.google.com/p/android/issues/detail?id=14266
De todos modos, en las versiones anteriores a Android 4.2 ya que Logcat es "sandboxed" puede ser imposible ...
No creo que exista tal API y tampoco hay API para enviar DTMF debido a la misma razón por la que no se puede saber cuándo se está conectando la llamada.
No necesariamente tiene que ser posible capturar esto como una aplicación externa. El ícono verde de Android forma parte de la aplicación que controla la llamada, por lo que no necesita una transmisión para cambiar el ícono.