如何在Xamarin中使用CXCallObserver?

时间:2017-10-03 08:52:43

标签: xamarin xamarin.ios xamarin.forms

我需要订阅一个事件来处理来电。由于iOS版本11.0 CTCallCenter已弃用,我们必须使用CXCallObserver。我成功实现了CTCallCenter的解决方案,但我无法为CXCallObserver订阅事件。有没有人有CXCallObserver的工作解决方案?

这是我为CTCallCenter订阅活动的代码..

_callCenter = new CTCallCenter();
_callCenter.CallEventHandler += CallEvent;

private void CallEvent(CTCall call)
{
    CoreFoundation.DispatchQueue.MainQueue.DispatchSync(() =>
    {
        if(call.CallState.Equals(call.StateIncoming))
            //Do something
    });
}

1 个答案:

答案 0 :(得分:1)

实施CXCallObserver

的委托
public class MyCXCallObserverDelegate : CXCallObserverDelegate
{
    public override void CallChanged(CXCallObserver callObserver, CXCall call)
    {
        Console.WriteLine(call);
    }
}

然后在您的代码中,创建一个CXCallObserver的实例(保持对此的强引用),然后分配委托:

cXCallObserver = new CXCallObserver();
cXCallObserver.SetDelegate(new MyCXCallObserverDelegate(), null);