¿Puedo disparar un evento cuando haya llamadas entrantes y salientes en iPhone? Un ejemplo de un evento es llamar a un servicio web.¿Podemos disparar un evento cuando hay llamadas entrantes y salientes en iphone?
Respuesta
Sí, puede, pero no necesariamente de inmediato.
Hay un marco, llamado el marco CoreTelephony, que tiene una clase CTCallCenter
. Una de las propiedades de esta clase es callEventHandler
property. Este es un bloque que se dispara cuando el estado de una llamada telefónica cambia. Por ejemplo:
CTCallCenter *callCenter = ...; // get a CallCenter somehow; most likely as a global object or something similar?
[callCenter setCallEventHandler:^(CTCall *call) {
if ([[call callState] isEqual:CTCallStateConnected]) {
//this call has just connected
} else if ([[call callState] isEqual:CTCallStateDisconnected]) {
//this call has just ended (dropped/hung up/etc)
}
}];
Eso es realmente sobre todo lo que se puede hacer con esto. No tienes acceso a ningún número de teléfono. El único otro tidbit útil de información es una propiedad de identificador en CTCall
, por lo que identifica de forma única un objeto CTCall
.
PRECAUCIÓN:
Este controlador de eventos es no invoca a menos que su aplicación está en primer plano! Si realiza y recibe llamadas mientras la aplicación está en segundo plano, el controlador de eventos no activará hasta que su aplicación se vuelva a activar, momento en el que (según la documentación vinculada a arriba) se invocará el controlador de eventos una vez por cada llamada que ha cambiado de estado mientras la aplicación estaba en segundo plano.
No. A partir del SDK actual, esto no es posible. Apple no permite que las aplicaciones tengan tales ganchos.
-1 incorrecto. Mira CoreTelephony.framework. –
Hmm. No sabia sobre esto. Sin embargo, estoy en lo cierto al pensar que no puedes tener tu aplicación "despierta" en respuesta a una llamada. Tienes que esperar hasta que entre en el primer plano (por la entrada del usuario) de nuevo? –
eso es correcto. Es simplemente una forma de saber que sucedieron las cosas y reaccionar ante ellas, pero solo cuando tu aplicación está activa. –
No, pero recibe retrollamadas en la aplicación cuando ocurren esos eventos.
-(void)applicationWillResignActive:(UIApplication *)application{
//our app is going to loose focus since thier is an incoming call
[self pauseApp];
}
-(void)applicationDidBecomeActive:(UIApplication *)application{
//the user declined the call and is returning to our app
[self resumeApp];
}
Esto no necesariamente significa que hay una llamada entrante. Otra aplicación, notificación o el botón de inicio lo activará. –
- 1. No hay un evento de timbre en las llamadas entrantes
- 2. Detectando SMS entrantes y salientes
- 3. Interceptar llamadas salientes al colgar
- 4. ¿Es posible en Android grabar la llamada durante llamadas entrantes o salientes
- 5. Cómo disparar un evento personal en Javascript
- 6. Disparar un evento de teclado en Chrome
- 7. Disparar shouldStartLoadWithRequest con múltiples llamadas a window.location.href
- 8. cómo disparar dropdownlist.selectedindexchanged evento programáticamente
- 9. cxf registro de mensajes entrantes y salientes en el archivo de registro separado
- 10. ¿Puede una aplicación de iPhone bloquear llamadas telefónicas?
- 11. ¿Cómo simular las llamadas entrantes en un dispositivo real?
- 12. Detener y A partir de la música en las llamadas entrantes
- 13. ¿Socket.io demora en disparar el evento "desconectar"?
- 14. ¿Hay un método Rx para repetir el valor anterior periódicamente cuando no hay valores entrantes?
- 15. ¿Solo disparar un evento una vez?
- 16. ¿Cuál es la forma más "similar a un teléfono" de usar Twilio en un iphone para llamadas salientes?
- 17. ¿Hay un evento activado cuando dte.Solution.SolutionBuild.StartupProjects cambia?
- 18. ¿Hay un evento para cuando los auriculares están desenchufados?
- 19. ¿Cómo disparar el evento JS en selenio?
- 20. Garantizando el evento onmouseout para disparar
- 21. ¿Cómo podemos simular llamadas y SMS en Android?
- 22. Disparar un evento en C# sin métodos de delegado adjuntos?
- 23. ¿Cómo puedo disparar un evento cuando o antes de que suene el teléfono?
- 24. ¿Hay un Oyente de llamadas caídas?
- 25. ¿Cómo disparar el evento clave de tabulación?
- 26. ¿Cómo puedo disparar un evento cuando hago clic derecho en un div dentro de un lienzo con jQuery?
- 27. cómo disparar evento de usuario, como en QWebElement
- 28. Evitar disparar evento de foco al hacer clic en div
- 29. Limitación de las llamadas salientes a la API generadas por la aplicación Rails
- 30. jqGrid: ¿hay un evento para cuando las columnas se reordenan?
Si mi aplicación origina una llamada saliente y se suscribe al evento de desconexión, en mi controlador de eventos ¿puedo enviar un mensaje local que indique al usuario que regrese a mi aplicación? ¿O conoces una forma menos engorrosa de volver a enfocarte en una aplicación después de que finaliza una llamada saliente? – JeremyWeir