识别iPhone中的来电号码

识别iPhone中的来电号码,iphone,objective-c,xcode,ios5,Iphone,Objective C,Xcode,Ios5,我怎么知道是谁在叫我? 在我的列表中确定我的电话号码甚至联系人 我可以用这个代码识别是否有电话 void (^ctCallStateMuda)(NSNotification *) = ^(NSNotification * notification) { NSString *callInfo = [[notification userInfo] objectForKey:@"callState"]; if ([callInfo isEqualToString:CTCallState

我怎么知道是谁在叫我? 在我的列表中确定我的电话号码甚至联系人

我可以用这个代码识别是否有电话

void (^ctCallStateMuda)(NSNotification *) = ^(NSNotification * notification) {
    NSString *callInfo = [[notification userInfo] objectForKey:@"callState"];
    if ([callInfo isEqualToString:CTCallStateIncoming]) {
        NSLog(@">>>>>> chegando");
    } else if ([callInfo isEqualToString:CTCallStateConnected])  {
        NSLog(@">>> atendendo <<<");        
    }  else if ([callInfo isEqualToString:CTCallStateDisconnected])  {
        NSLog(@"desconectado >>>>>>");        
    } else if ([callInfo isEqualToString:CTCallStateConnected])  {
        NSLog(@"discando");        
    } else {
        NSLog(@"nada");        
    }
};

CTCallCenter *callCenter;
callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler = ^(CTCall* aCallIncomming) {
    NSDictionary *dict = [NSDictionary dictionaryWithObject:aCallIncomming.callState
                                                     forKey:@"callState"];

    [[NSNotificationCenter defaultCenter] postNotificationName:@"CTCallStateDidChange"
                                                        object:self
                                                      userInfo:dict];
};

[[NSNotificationCenter defaultCenter] addObserverForName:@"CTCallStateDidChange" 
                                                  object:nil 
                                                   queue:nil 
                                              usingBlock:ctCallStateMuda];
void(^ctCallStateMuda)(NSNotification*)=^(NSNotification*通知){
NSString*callInfo=[[notification userInfo]objectForKey:@“callState”];
if([callInfo IsequalString:CTCallStateIncoming]){
NSLog(@“>>>>>>>切甘多”);
}else if([callInfo IsequalString:CTCallStateConnected]){
NSLog(@“>>>atendendo>>>”);
}else if([callInfo IsequalString:CTCallStateConnected]){
NSLog(“discando”);
}否则{
NSLog(@“nada”);
}
};
CTCallCenter*呼叫中心;
callCenter=[[CTCallCenter alloc]init];
callCenter.callEventHandler=^(CTCall*acallincoming){
NSDictionary*dict=[NSDictionary Dictionary WithObject:acallIncoming.callState
forKey:@“callState”];
[[NSNotificationCenter defaultCenter]postNotificationName:@“CTCallStateDidChange”
对象:self
用户信息:dict];
};
[[NSNotificationCenter defaultCenter]addObserverForName:@“CTCallStateDidChange”
对象:无
队列:无
使用block:ctCallStateMuda];

您无法在公共SDK中访问此信息(越狱iPhone是另一回事)。苹果禁止应用程序访问任何与通话记录相关的信息。您在上面发布的代码是为了让您的应用程序能够检测到用户何时接到电话,并相应地调整其界面,但仅此而已。

可能重复的