usar sim recibir mexico mac llamadas hacer gratis facetime desde con como calling iphone objective-c ios xcode phone-call

iphone - sim - recibir llamadas en ipad



iOS Cómo comprobar si actualmente está en la llamada telefónica (3)

He mirado alrededor y todo lo que puedo encontrar es verificar el estado de llamada de CTCallCenter. Sin embargo, esto funciona al escuchar un evento, que, dependiendo de si la aplicación está activa / suspendida / reanudada, el evento se puede generar en diferentes momentos.

Lo que necesito es que en lugar de escuchar el evento y que me avisen cuando la llamada está conectada, quiero decidir cuándo preguntar si la llamada está conectada.

Caso de uso: cuando la llamada telefónica está conectada, el usuario sabe y siempre hará clic en el icono de la aplicación, que abrirá la aplicación. En este momento, solo quiero ejecutar una función rápida para verificar si actualmente estoy de guardia o no.

¿Es esto posible?


Gracias por la respuesta ThomasW. Pensé que también iba a publicar el código.

- (void)applicationWillEnterForeground:(UIApplication *)application { CTCallCenter *ctCallCenter = [[CTCallCenter alloc] init]; if (ctCallCenter.currentCalls != nil) { NSArray* currentCalls = [ctCallCenter.currentCalls allObjects]; for (CTCall *call in currentCalls) { if(call.callState == CTCallStateConnected) { // connected } } } }


El objeto CTCallCenter tiene una propiedad currentCalls que es un NSSet de las llamadas actuales. Si hay una llamada, la propiedad currentCalls debería ser! = Nil.

Si desea saber si alguna de las llamadas está realmente conectada, tendrá que recorrer las llamadas actuales y verificar el callState la callState para determinar si está CTCallStateConnected o no.


#import <CoreTelephony/CTCallCenter.h> #import <CoreTelephony/CTCall.h> -(bool)isOnPhoneCall { /* Returns TRUE/YES if the user is currently on a phone call */ CTCallCenter *callCenter = [[[CTCallCenter alloc] init] autorelease]; for (CTCall *call in callCenter.currentCalls) { if (call.callState == CTCallStateConnected) { return YES; } } return NO; }