So che questo è già stato chiesto più volte, senza risposte, ma spero ancora che qualcuno abbia finalmente risolto il problema.Rilevamento risposta chiamata in uscita su Android
Il problema: ho un dispositivo non rootato con Android 2.3. Devo creare un servizio che:
- fa una telefonata;
- attende fino alla risposta della chiamata;
- blocca il telefono dopo la risposta alla chiamata (con un timeout);
Come molti altri, sono rimasto bloccato con # 2. Di seguito è riportato il riepilogo delle soluzioni mai suggerito:
- Usa PhoneStateListener (più popolare): non funziona, per chiamate in uscita non può rilevare quello che mi serve.
- Utilizzare
com.android.internal.telephony.CallManager
e i suoi metodi comeregisterForPreciseCallStateChanged
(ad esempio, this one): non funziona, non ci sono telefoni registrati al suo interno, quindi gli eventi non si attivano. - Utilizzare
com.android.internal.telephony.PhoneFactory
per ottenere un'istanzacom.android.internal.telephony.Phone
(che è la chiave per tutto): non funziona, la fabbrica non è inizializzata; tenta di inizializzarlo con una chiamatamakeDefaultPhones
in un'eccezione di sicurezza (come here). - Rileva la suoneria in uscita (link): l'autore - Dany Poplawec - afferma che la rilevazione di suonerie può aiutare a risolvere il problema, ma non fornisce dettagli, quindi non ho potuto provare questa tecnica.
Sembra che tutto è stato provato già, ma ci può essere ancora un trucco più che mi farà risparmiare :)
Hai trovato qualche soluzione per questo? – Noundla
Purtroppo, sembra che non si possa fare nulla se non modificare il sistema operativo Android stesso. –