2

我使用 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。Apple iOS SDK 有没有可用的方法?

4

1 回答 1

2

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

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

于 2012-12-03T10:37:17.673 回答