2012-04-12 16 views
8

Desidero comporre un numero dopo che ho risposto a una chiamata, normalmente effettuata dalla tastiera in chiamata.Mostra tastiera in chiamata - Comporre un numero durante la chiamata - DTMF

Ho provato quanto segue, ma questo inizia a comporre una nuova chiamata (così ACTION_VIEW).

Intent dial = new Intent(Intent.ACTION_DIAL); 
dial.setData(Uri.parse("tel:9")); 
startActivity(dial); 

La mia ipotesi è che "tel:" innesca una nuova sequenza di composizione. Quello di cui ho probabilmente bisogno è mostrare la tastiera in-call e simulare i colpi di chiave.

Chiunque?

Edit: Ho trovato questa domanda Starting the InCallScreen activity che mi fa pensare che ho bisogno di inviare solo un evento KeyDown per 'com.android.phone.InCallScreen', ma io non sono sicuro di come farlo. Anche questo è un problema direttamente correlato che è stato (ed è tuttora) aperto per anni: http://code.google.com/p/android/issues/detail?id=1428

+0

Per quanto posso dire, non ci sono funzionalità nell'API pubblica per questo. Ci sono state alcune [modifiche proposte] (https://groups.google.com/forum/#!msg/android-contrib/4QqHgLOrBO8/xXl9221pv-kJ) a TelephonyManager per consentire ciò, ma sembrano essersi fermati. – caseyburkhardt

risposta

0

No. Non è il tel: che attiva una nuova chiamata, ma piuttosto il fatto che si sta creando un nuovo Intent, e quindi si esegue startActivity (dial);

Pensa a cosa significa: stai avviando un'attività completamente nuova, quindi non può interagire con l'attività relativa al telefono che sta utilizzando il codice precedente.

Penso che quello che stai veramente cercando di fare è aggiungere un numero alla fine di ciò che stai componendo. Per fare ciò, devi inserire il tuo numero intero, oltre a un carattere di pausa (p) nei dati URI, e utilizzare ACTION_CALL. Codice:

Intent dial = new Intent(Intent.ACTION_CALL); 
dial.setData(Uri.parse("tel:7195555555ppp9")); 
startActivity(dial); 

ho fatto tre pause, è necessario regolare in base a quanto tempo ci vuole. In alternativa, utilizza il carattere di attesa (w), ma questo sembra richiedere la conferma da parte dell'utente per l'invio delle cifre aggiuntive.

Problemi correlati