【问题标题】:CoreTelephony framework available for Facetime too?CoreTelephony 框架也可用于 Facetime?
【发布时间】:2023-03-22 07:15:01
【问题描述】:

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

我想要做的是,一旦通话结束,向用户发送本地通知,询问他是否想回到我的应用程序,这一切都在 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 文档所说的那样),框架仅在您在应用程序中时才会发送这些通知。暂停模式不会收到任何通知。

【问题讨论】:

  • 我只是运行了一个小测试,我发现我的代码可以完美地与实际的电话通话。 CTCallCenter 块必须放在 applicationDidBecomeActive 方法中。我还意识到(就像 Apple 文档所说的那样),框架仅在您在应用程序中时才会发送这些通知。暂停模式不会收到任何通知。什么废话......因为有人让这成为可能呢?我有一种有效的方法可以在面谈后返回您的申请???谢谢!晚安(哦,天哪!已经是凌晨 2:30)

标签: iphone objective-c core-telephony facetime


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 2011-04-30
    • 2011-02-07
    • 2011-11-10
    • 2021-12-26
    • 2014-04-19
    • 2013-11-12
    • 2012-04-14
    • 2016-02-18
    相关资源
    最近更新 更多