2016-11-14 3 views
2

Перед использованием iOS 10 мы можем использовать [[self.call callState] isEqualToString:@"CTCallStateIncoming"] для обнаружения входящих вызовов. В IOS10 callState устарела и Заменена свойствами CallKit/CXCall.h. Но в CallKit нет такого статуса, как «Входящие», они придумали статусы «исходящие», «onHold», «hasConnected», «hasEnded». Мне нужен Входящий или аналоговый. Какие-нибудь обходные пути? Благодарим вас за любые предложения.Что такое аналоговый для CTCallStateIncoming в iOS 10?

+1

Вы можете сделать окончательный результат как «Входящий». Потому что вы можете наблюдать все остальные состояния вызова, кроме входящих. –

+0

Я могу попробовать, но не думаю, что это будет последовательным. В любом случае, спасибо. –

+0

Это решение не работает. –

ответ

0

Вы должны быть в состоянии использовать CallKit в CXCallObserver и CXCall API, и использовать следующее условие для определения, когда данный CXCall является входящим (!isOutgoing), до сих пор не ответили (!hasConnected), и не закончилась (!hasEnded):

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

Спасибо, это может сработать, но как насчет статуса call.onHold? Таким образом, полное выражение должно указывать ((! Call.isOutgoing) && (! Call.hasConnected) && (! Call.hasEnded) && (! Call.onHold)). И вы видите, насколько это неустойчиво? Моя точка зрения заключается в необходимости прямого выражения, а не комбинации отрицательных. –