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

时间:2012-12-03 10:36:26

标签: ios background phone-call core-telephony

我使用iOS SDK 4.0中引入的CoreTelephony框架来了解Incoming call& amp;它的状态下降了。

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。Apple iOS SDK可以使用吗?

1 个答案:

答案 0 :(得分:2)

在官方SDK中没有办法做到这一点,你不能在后台使用它,因为它不属于后台运行类别,除非你的应用程序在后台执行其他操作然后只是监控调用。

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