Sto scrivendo un'app che deve essere eseguita durante una chiamata. Dopo che l'utente ha effettuato una chiamata e avvia la mia app, desidero che la mia app sia in grado di sapere se la chiamata è stata interrotta da una connessione errata. È possibile? GrazieCome può la mia app Android rilevare una chiamata interrotta?
risposta
La classe Android TelephonyManager
fornisce il metodo getCallState()
, che indica lo stato della chiamata corrente. Stai cercando una transizione da CALL_STATE_OFFHOOK
a CALL_STATE_IDLE
.
Sfortunatamente, non vedo alcun metodo per registrare una richiamata, quindi potrebbe essere necessario ricorrere al polling.
http://developer.android.com/reference/android/telephony/TelephonyManager.html
Non CALL_STATE_OFFHOOK -> CALL_STATE_IDLE indicano anche una chiamata normalmente terminata?
Indipendentemente da ciò, è possibile controllare semplicemente lo stato della chiamata utilizzando il metodo di callback onCallStateChanged della classe PhoneStateListener. Questo verrà chiamato ogni volta che lo stato cambia ed è possibile cambiare lo stato fornito per trovare in quale stato si trova.
- 1. Come può la mia app rilevare una modifica alla finestra di un'altra app?
- 2. La mia app per Android può rilevare se è stata avviata da Eclipse?
- 3. Come fa un Android "OS" rilevare una chiamata in arrivo
- 4. Come collego la mia estensione alla mia app per Android?
- 5. Posso rilevare che è stata rimossa una particolare autorizzazione per la mia app Android?
- 6. La mia legenda matplotlib.pyplot viene interrotta
- 7. Posso interrompere Android dall'uccidere la mia app?
- 8. Come gestire EINTR (chiamata di sistema interrotta)
- 9. La mia app Android è rilevata come malware da Avast
- 10. android: come faccio a contrassegnare la mia app come debuggibile?
- 11. Come aggiungere una notifica push nella mia app Android
- 12. In che modo la mia app Parse.com può inviare un'email?
- 13. Come rilevare la chiamata ricorsiva di root?
- 14. Usa Android per rilevare altri dispositivi che eseguono la mia app nelle vicinanze
- 15. Come passare intento Android a chiunque tranne la mia app?
- 16. Come avviare la mia app meteo su un dispositivo Android?
- 17. Come disabilitare proguard per creare la mia app per Android?
- 18. Firma la mia applicazione Android come sistema app
- 19. Come rilevare quando l'utente avvia un'altra app? (Android)
- 20. android - Come effettuare una chiamata dal webview
- 21. Perché la mia istanza AWS EC2 termina quando viene interrotta?
- 22. Perché la mia app del nodo continua a essere interrotta quando uso per sempre?
- 23. come terminare la mia chiamata in uscita.
- 24. android: come posso aprire un'altra app dalla mia app?
- 25. Rimuovere la mia app dal gestore account Android "aggiungi account"
- 26. Android non può recuperare la mia posizione corrente (Appcelerator Titanium)
- 27. Come avviare app Android all'interno della mia applicazione in Android?
- 28. Come rifiutare una chiamata programmaticamente in Android
- 29. Come devo testare la mia app Rails?
- 30. NSLog rallenterà la mia app?
In che modo la transizione di stato per un normale hang-up deve essere diversa da offhook -> idle? – Sam
Ah, vedo cosa stai chiedendo ora. Sfortunatamente, da quello che vedo, non penso che ci sia un modo per distinguere tra una chiamata interrotta, l'interruzione dell'utente o il blocco remoto. –
come sapere che la persona che sta chiamando ha cancellato la chiamata da solo? ne abbiamo alcun flusso? –