我怎么知道是谁在叫我?在我的列表案例中识别号码甚至联系人。
我可以用这个代码识别是否有电话。
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];
您无法在公共SDK中访问这些信息(越狱的iPhone是另一回事)。苹果禁止应用程序访问任何与通话历史相关的信息。你上面发布的代码是为了让你的应用程序能够检测用户何时接到电话,并相应地调整他们的界面,但仅此而已。