CoreTelephony框架也适用于Facetime?

时间:2011-01-26 04:07:02

标签: iphone objective-c core-telephony facetime

我正在开发一个适用于facetime的应用程序。不幸的是,还没有Facetime框架或API可用,所以我正在使用我所拥有的。像你们所有人都必须知道的那样,当发布Facetime呼叫时,本机Phone应用就可以完成这项工作。唯一的问题是,当通话结束时,它会留在那里。

我想要做的是,一旦通话结束,向用户发送本地通知,询问他是否想要回到我的应用程序,所有这一切都在CoreTelephony框架的帮助下完成。我知道这是一个正在进行中的框架,它仍然是一个私有框架,但是:

我可以在我的应用中使用该框架并发布它,而不会被Apple拒绝吗?

该框架是否适用于Facetime?我无法让它发挥作用。 这是我做的:

  • 我首先在appDelegate头文件中导入了框架
  • 然后......

- (void)applicationDidEnterBackground:(UIApplication *)application{
 NSLog(@"applicationDidEnterBackground");


CTCallCenter *callCenter = [[CTCallCenter alloc] init];
 callCenter.callEventHandler=^(CTCall* call){

  if (call.callState == CTCallStateDialing){ 
   NSLog(@"Call Dialing");
  }
  if (call.callState == CTCallStateConnected){ 
   NSLog(@"Call Connected");
  }
  if (call.callState == CTCallStateDisconnected){ 
   NSLog(@"Call Disconnected");
  }
 };
}

没有任何内容可以追踪。有什么想法吗?

更新:我只是进行了一些测试,我发现我的代码与实际的电话完全匹配。必须将CTCallCenter块放在applicationDidBecomeActive方法中。我也意识到(就像Apple文档所说的那样),框架仅在您进入应用程序时才会调度这些通知。暂停模式不会收到任何通知。

1 个答案:

答案 0 :(得分:0)

在iOS 10中有一个新的CallKit SDK,即使没有VoIP权限,也可以检测VoIP呼叫(包括FaceTime)。 Here's a great answer explaining how just to use the observer part.