2016-11-14 10 views
2

iOS 10 이전에는 수신 전화를 감지하기 위해 [[self.call callState] isEqualToString:@"CTCallStateIncoming"]을 사용할 수 있습니다. IOS10에서는 callState가 사용되지 않으며 은 CallKit/CXCall.h 속성으로 대체되었습니다. 그러나 CallKit에 "Incoming"과 같은 상태는 없으며 "발신", "onHold", "hasConnected", "hasEnded"상태가 나타납니다. 수신 또는 아날로그가 필요합니다. 지금까지의 해결 방법은 무엇입니까? 어떤 제안이있어 주셔서 감사합니다.iOS 10의 CTCallStateIncoming에 대한 아날로그는 무엇입니까?

+1

최종 결과를 "수신"으로 설정할 수 있습니다. 들어오는 것을 제외한 다른 모든 통화 상태를 관찰 할 수 있기 때문입니다. –

+0

시도해 볼 수는 있지만 일관성이 없을 것이라고 생각하지는 않습니다. 어쨌든 고맙습니다. –

+0

이 솔루션은 작동하지 않습니다. –

답변

0

주어진 CXCall이 (!isOutgoing)를 수신 때, 아직 (!hasConnected)를 응답되지 않았으며, (!hasEnded)를 종료하지 않은 감지 CallKit의 CXCallObserverCXCall API를 사용하여 다음과 같은 조건을 사용할 수 있어야합니다 :

!cxCall.isOutgoing && !cxCall.hasConnected && !cxCall.hasEnded 
+1

고맙습니다. 작동 할 수도 있습니다.하지만 전화는 어때요. 보류 상태입니까? 따라서 완전한 표현식은 ((! call.isOutgoing) && (! call.hasConnected) && (! call.hasEnded) && (! call.onHold))라고 말해야합니다. 그게 얼마나 불안정한 지 알겠습니까? 내 요점은 부정적인 표현의 조합이 아니라 직접적인 표현이 필요하다는 것입니다. –