【问题标题】:How to intercept my phone Number thru Callkit如何通过 Callkit 拦截我的电话号码
【发布时间】:2018-10-04 10:05:04
【问题描述】:

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

说,我给我的另一部电话打了一条消息(启动应用程序名称: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")
        }
    }
}

谢谢

【问题讨论】:

    标签: swift3 swift4.2


    【解决方案1】:

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

    请参阅CXCall 上的 Apple 文档HERE

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

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

    【讨论】:

    • 是的。这是场景。电话1呼叫电话2; Phone2 接听电话,然后在 CallKit 接收事件中,我想编写代码以在 phone2 中启动我的应用程序。这个可以吗?
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    相关资源
    最近更新 更多