0

我想在swift3或更高版本上构建一个IOS App。这个应用程序能够通过 CallKit 拦截我的手机号码或消息,并在手机中启动应用程序。

比如说,我打电话给我的另一部手机发了一条消息( Launch Appname : MySillyApp )。当我的另一部 iPhone 收到它时,它将启动该应用程序。

这对 CallKit 可行吗?还有哪些可用的 API?

--更新

我看到了这段代码,但我不知道它是如何工作的:

import CallKit

final class ProviderDelegate: NSObject, CXCallObserverDelegate { 
var callObserver: CXCallObserver!

func setupCallObserver(){
callObserver = CXCallObserver()
callObserver.setDelegate(self, queue: nil)
}

func callObserver(_ callObserver: CXCallObserver, callChanged call: CXCall) {
        if call.hasEnded == true {
            print("CXCallState :Disconnected")
        }
        if call.isOutgoing == true && call.hasConnected == false {
            print("CXCallState :Dialing")
        }
        if call.isOutgoing == false && call.hasConnected == false && call.hasEnded == false {
            print("CXCallState :Incoming")
        }

        if call.hasConnected == true && call.hasEnded == false {

            print("CXCallState : Connected")
        }
    }
}

谢谢

4

1 回答 1

0

如果您的问题是指从常规蜂窝电话中提取电话号码,那么这是不可能的。您可以从对象中获取通话状态和 UUID CXCall,但在 iOS 中您无法通过任何方式获取电话号码。(当然,这是针对常规蜂窝电话的。)

请参阅CXCall 此处的 Apple 文档

您上面显示的代码会响应任何呼叫更改,例如,呼叫开始时、收到来电时、呼叫连接时和呼叫结束时。

的主要目的CXCallObserverDelegate是允许应用程序对外部事件做出反应,例如取消应用程序在来电期间正在执行的操作或其他操作......它不是用于提取私人信息,例如呼叫线路的标识。

于 2018-10-17T08:35:17.317 回答