2010-02-12 23 views
51

Una volta trasmesso il numero ACTION_NEW_OUTGOING_CALL, è necessario acquisire il seguente evento della risposta dell'altra parte. Potresti consigliarti su come ottenerlo per favore? So che è possibile quando l'app Android dialer cambia l'icona di Android verde sulla foto della persona quando capta. Grazie!Rileva se è stata ricevuta una chiamata in uscita

AGGIORNATO: Ho dato un'occhiata all'origine dell'app su Android che gestisce le chiamate in uscita. Ho notato il seguente metodo in 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); } 

Credo che la mia risposta è l'attività di ascolto per Intent.ACTION_CALL_PRIVILEGED. Quindi, per ripetere la mia domanda: qualcuno sa quale attività gestisce Intent.ACTION_CALL_PRIVILEGED? Grazie in anticipo

+0

hai trovato la soluzione al tuo problema? Sto anche cercando la stessa soluzione. Voglio sapere se l'altro utente ha risposto alla chiamata o ha disconnesso –

+0

Attualmente non è possibile rilevare quando sono stati prelevati esattamente; l'applicazione chiamante utilizza un intento interno per quello. – mobilekid

+0

sì, questo è quello che ho concluso anch'io oggi: - | comunque, grazie –

risposta

3

Non necessariamente deve essere possibile catturarlo come un'app esterna. L'icona verde di Android è una parte dell'applicazione che controlla la chiamata, quindi non è necessaria una trasmissione per cambiare l'icona.

+4

Sì, tuttavia , Ho bisogno di catturare questo evento! – mobilekid

7

Non penso ci sia questa API e inoltre non ci sono API per l'invio di DTMF a causa della stessa ragione per cui non è possibile sapere quando la chiamata è in corso di connessione.

1

L'unico modo si può essere in grado di farlo è analizzando i log Logcat, nessun evento PhoneStateListener è disponibile per tale.

Alcuni si chiedono qui: https://code.google.com/p/android/issues/detail?id=14266

In ogni caso, nelle versioni precedenti di Android 4.2 come Logcat è "sandbox" può essere impossibile ...

+0

Se impostiamo targetSdkVersion della nostra app su <4.2. Possiamo leggere i log di sistema usando logcat? –

+1

ho paura di no. perché sono i registri dell'app Telefono che sono in scatola di sabbia. Non importa quale sdk sta usando la tua app. –

2

Per quanto riguarda il direttore di telefonia di Android è interessato u non può rileva a livello di programmazione se la chiamata ha ricevuto risposta o meno. Questo per dire che non hai la possibilità di sapere quando l'utente ha scelto il telefono dall'altra parte. Android ha 3 stati del gestore telefonico e nessuno di questi è in grado di rilevare se la chiamata è stata effettivamente ricevuta o meno (IN CASO DI CHIAMATE OUTINGING)

Problemi correlati