如果我使用 CallKit 框架检查正在进行的呼叫的状态,即使我的应用没有任何 VOIP 功能,我的应用也会被拒绝吗?



我正在开发一个应用程序,该应用程序有一个部分,用户可以在其中点击手机号码进行蜂窝电话。为了进行调用,我使用以下代码。

if let phoneCallURL = URL(string: "tel://(9999999999)") {
let application:UIApplication = UIApplication.shared
if (application.canOpenURL(phoneCallURL)) {
if #available(iOS 10.0, *) {
application.open(phoneCallURL, options: [:], completionHandler: nil)
} else {
// Fallback on earlier versions
application.openURL(phoneCallURL)
}
}
}

这将显示一个警报,其中包含呼叫或取消选项。现在,当我选择呼叫选项时,我需要检查正在进行的呼叫的状态。 为此,我正在使用CallKit框架。

var callObserver = CXCallObserver()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
callObserver.setDelegate(self, queue: nil)
}
func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
if call.hasConnected {
}
if call.isOutgoing {
}
if call.hasEnded {
}
if call.isOnHold {
}
}

此委托方法在传出呼叫开始或结束时接收回调。

现在,由于我的应用程序没有任何与VOIP相关的功能,我只想知道是否可以像这样使用CallKit框架来了解呼叫状态。

如果我像这样使用CallKit并且应用程序中没有VOIP功能,我的应用程序是否会被拒绝上传亚马逊应用商店? 对此的任何帮助将不胜感激。

一般来说,CallKit.framework的CXCallObserverAPI可以被任何应用程序使用,无论该应用程序本身是否提供VoIP呼叫功能。

但请注意,不能保证你的应用观察到的任何特定调用都是用户根据应用打开的tel:URL 决定调用的结果。用户可能拒绝打开你的应用提供打开的tel:URL,而是单独拨打呼叫或在同一时间段内收到传入呼叫,并且你的应用无论如何都会收到外观相似的CXCallObserver委托回调。无法可靠地区分在应用外部发起的调用和从应用启动的调用。

最新更新