Перед использованием iOS 10 мы можем использовать [[self.call callState] isEqualToString:@"CTCallStateIncoming"]
для обнаружения входящих вызовов. В IOS10 callState устарела и Заменена свойствами CallKit/CXCall.h. Но в CallKit нет такого статуса, как «Входящие», они придумали статусы «исходящие», «onHold», «hasConnected», «hasEnded». Мне нужен Входящий или аналоговый. Какие-нибудь обходные пути? Благодарим вас за любые предложения.Что такое аналоговый для CTCallStateIncoming в iOS 10?
ответ
Вы должны быть в состоянии использовать CallKit в CXCallObserver
и CXCall
API, и использовать следующее условие для определения, когда данный CXCall
является входящим (!isOutgoing
), до сих пор не ответили (!hasConnected
), и не закончилась (!hasEnded
):
!cxCall.isOutgoing && !cxCall.hasConnected && !cxCall.hasEnded
Спасибо, это может сработать, но как насчет статуса call.onHold? Таким образом, полное выражение должно указывать ((! Call.isOutgoing) && (! Call.hasConnected) && (! Call.hasEnded) && (! Call.onHold)). И вы видите, насколько это неустойчиво? Моя точка зрения заключается в необходимости прямого выражения, а не комбинации отрицательных. –
Вы можете сделать окончательный результат как «Входящий». Потому что вы можете наблюдать все остальные состояния вызова, кроме входящих. –
Я могу попробовать, но не думаю, что это будет последовательным. В любом случае, спасибо. –
Это решение не работает. –