如何在Xamarin中使用CXCallObserver?
我需要订阅一个事件来处理传入的电话。由于iOS 11.0版CTCallCenter已被弃用,我们必须使用CXCallObserver。我成功实现了CTCallCenter的解决方案,但无法订阅CXCallObserver的事件。有人有CXCallObserver的工作解决方案吗 这是我为CTCallCenter订阅活动的代码如何在Xamarin中使用CXCallObserver?,xamarin,xamarin.ios,xamarin.forms,Xamarin,Xamarin.ios,Xamarin.forms,我需要订阅一个事件来处理传入的电话。由于iOS 11.0版CTCallCenter已被弃用,我们必须使用CXCallObserver。我成功实现了CTCallCenter的解决方案,但无法订阅CXCallObserver的事件。有人有CXCallObserver的工作解决方案吗 这是我为CTCallCenter订阅活动的代码 _callCenter = new CTCallCenter(); _callCenter.CallEventHandler += CallEvent; private
_callCenter = new CTCallCenter();
_callCenter.CallEventHandler += CallEvent;
private void CallEvent(CTCall call)
{
CoreFoundation.DispatchQueue.MainQueue.DispatchSync(() =>
{
if(call.CallState.Equals(call.StateIncoming))
//Do something
});
}
为
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);
您还知道如何正确释放此委托的资源吗?@JanNepraš对于
CXCallObserverDelegate
,没有弱委托,因此我个人保留了对CXCallObserverDelegate
和CXCallObserverDelegate
实例的引用,并手动处置它们。