如何从iphone上的来电中获取呼叫者的电话号码

如何从iphone上的来电中获取呼叫者的电话号码,iphone,core-telephony,Iphone,Core Telephony,嗨,我想建立一个应用程序,做一些事情时,来电进来。但我认为,手机需要在iphone上越狱才能访问这样做的类。我想这样做而不让手机被越狱。不可能 但是,您可以使用framework获得呼叫状态(已连接/已断开连接等)等信息。如果您想在呼叫到来或离去时执行任何操作,则必须使用以下代码: CTCallCenter *callCenter; //make it ivar if you are using ARC or handler will be auto-released... callCenter

嗨,我想建立一个应用程序,做一些事情时,来电进来。但我认为,手机需要在iphone上越狱才能访问这样做的类。我想这样做而不让手机被越狱。

不可能


但是,您可以使用framework获得呼叫状态(已连接/已断开连接等)等信息。

如果您想在呼叫到来或离去时执行任何操作,则必须使用以下代码:

CTCallCenter *callCenter; //make it ivar if you are using ARC or handler will be auto-released...
callCenter = [[CTCallCenter alloc] init];
callCenter.callEventHandler=^(CTCall* call) {
    NSLog(@"Call id:%@", call.callID);
    [self callStateChange:call.callState andId:call.callID];
    if (call.callState==CTCallStateDialing) {
       NSLog(@"Call state:dialing");
    }
    if (call.callState==CTCallStateIncoming) {
       NSLog(@"Call state:incoming");
       //here you lower your speaking volume if you want
    }
    if (call.callState==CTCallStateConnected) {
       NSLog(@"Call state:connected");
    }
    if (call.callState==CTCallStateDisconnected) {
       NSLog(@"Call state:disconnected");
    }
};
但当u应用程序处于活动状态或从后台转到前台时,这一点就起作用了。如果应用程序将终止或挂起将不起作用的。首先检测呼叫状态,然后立即显示本地通知。当点击查看详情,然后再次显示你的应用程序。但这并没有得到苹果的批准,因为它会在后台发送电话。所以这可能有风险