2010-02-12 16 views
51

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!Detectar si se ha respondido una llamada saliente

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); } 

Creo que mi respuesta está en la actividad de la escucha de Intent.ACTION_CALL_PRIVILEGED. Entonces, para replantear mi pregunta: ¿Alguien sabe qué actividad maneja Intent.ACTION_CALL_PRIVILEGED? Gracias en avanzado

+0

¿Encontró usted la solución a su problema? también estoy buscando la misma solución. Deseo saber si el otro usuario final ha contestado la llamada o si se ha desconectado. –

+0

Actualmente no es posible detectar cuándo exactamente han recogido; la aplicación de llamadas usa una intención interna para eso. – mobilekid

+0

sí, esto es lo que también he concluido hoy: - |, de todos modos, gracias –

Respuesta

3

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.

+4

Sí, sin embargo , ¡Necesito capturar este evento! – mobilekid

7

No creo que exista tal API y tampoco hay API para enviar DTMF debido a la misma razón por la que no puede saber cuándo se está conectando la llamada.

1

La única forma en que puede hacer esto es mediante el analizando los registros Logcat, no hay ningún evento PhoneStateListener disponible para eso.

Algunos están pidiendo aquí: https://code.google.com/p/android/issues/detail?id=14266

De todos modos, en las versiones anteriores de Android 4.2 como Logcat es "un recinto de seguridad" puede ser imposible ...

+0

Si establecemos targetSdkVersion de nuestra aplicación en <4.2. ¿Podemos leer los registros del sistema usando logcat? –

+1

me temo que no. porque son los registros de la aplicación del teléfono los que están enmarcados en arena. No importa qué sdk está usando su aplicación. –

2

En cuanto a gerente de la telefonía del androide T está en cuestión no pueda 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 contestada o no (EN CASO DE LLAMADAS SALIENTES)

Cuestiones relacionadas