如何获取iOS设备中的用户来电电话号码

我使用iOS SDK 4.0中引入的CoreTelephony框架来了解传入呼叫及其丢弃状态。

CTTelephonyNetworkInfo *tni = [[CTTelephonyNetworkInfo alloc] init]; callCenter = [[CTCallCenter alloc] init]; crtCarrierName = tni.subscriberCellularProvider.carrierName; [callCenter setCallEventHandler:^(CTCall *call) { if ([[call callState] isEqual:CTCallStateConnected]) { //this call has just connected } else if ([[call callState] isEqual:CTCallStateDisconnected]) { //this call has just ended (dropped/hung up/etc) } }]; 

当我的应用程序在后台时,我可以使用此事件处理程序来跟踪呼叫状态吗? 我也可以从CTCall对象获取来电电话号码吗? 或者有任何其他的方法。
我不想使用私人API.Is有从Apple iOS SDK的方式?

没有办法在官方的SDK中这样做,你不能在后台使用它,因为它不会落在后台运行的类别,除非你的应用程序在后台做了其他的事情,然后只是监视调用。

您将永远无法获得当前通话的电话号码,因为这是私人数据Apple不会允许您访问数据。