2011-09-06 22 views
13

Me gustaría poder bloquear selectivamente las llamadas entrantes en una aplicación de iOS que estoy escribiendo. Esto es para uso personal, no para la App Store, así que estoy de acuerdo con el uso de API privadas para lograr esto.¿Cómo puedo usar API privadas para bloquear llamadas entrantes en una aplicación de iOS?

Recientemente me encontré con el marco de Telefonía básica. ¿Hay alguna manera de usar este marco para bloquear llamadas? Si no, ¿qué API privadas podría usar para hacer esto?

Respuesta

35

¿Estás seguro de que no es así? ejemplos de código en http://tech.ruimaninfo.com/?p=83 muestra cómo hacer tales cosas. Los encabezados de telefonía central en SDK no están completos. Por supuesto, esto significa que no hay tienda de aplicaciones Este es mi fragmento de código basado en el ejemplo que vincula

if ([str1 isEqualToString:@"kCTCallIdentificationChangeNotification"]) 
{ 
    NSDictionary *info = (__bridge NSDictionary *)userInfo; 
    CTCall2 *call = (__bridge CTCall *)[info objectForKey:@"kCTCall"]; 
    NSString *caller = CTCallCopyAddress(NULL, call); 
    NSLog(@"Caller %@",caller); 
    if ([caller isEqualToString:@"+1555665753"]) 
    { 
     //disconnect this call 
     CTCallDisconnect(call); 

} 

definiciones adicionales necesarios:

typedef struct __CTCall CTCall; 
extern NSString *CTCallCopyAddress(void*, CTCall *); 
extern void CTCallDisconnect(CTCall*); 

y hay que vigilar de devolución de llamada del centro de la telefonía (véase el ejemplo enlazado) Probé este fragmento en mi dispositivo iOS5

+0

No, no puedo ponerlo en la tienda de aplicaciones, pero ¿cómo bloquearía un número específico con ese enlace? –

+0

He actualizado mi respuesta – dkzm

+0

Todavía no, no veo ningún cambio:/ –

3

Core Telephony no es compatible con esto. Que yo sepa, tampoco hay forma de hacer esto con cualquier API privada conocida.

+3

¿Cómo lo hacen iBlackList y MCaller entonces? –

+1

@ H2CO3, ¿dónde dije "Es imposible"? –

+2

@GregMartin "Que yo sepa, no hay forma de hacer esto con ninguna API privada conocida tampoco". –

Cuestiones relacionadas