telprompt - могу ли я получить продолжительность звонка?

Я пытаюсь сделать вызов через команду telpromt, чтобы вернуться к моему приложению после того, как оно сделает вызов:

NSString *telno = @"telprompt://121,,,,14";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:telno]];

Есть ли способ рассчитать продолжительность вызова во всех ситуациях из моего приложения?


person DareDevil    schedule 27.05.2014    source источник
comment
Я не знаю, работает ли это, но вы можете запустить таймер в viewDidDisappear и оценить его в viewDidAppear.   -  person Sebastian Wramba    schedule 27.05.2014
comment
Вы можете посмотреть инфраструктуру CTCoreTelephony, представленную в iPhone sdk. Поскольку телефонная подсказка не является официальной, Apple может удалить ее в будущей версии без предварительного уведомления. Поэтому, даже если они одобрят ваше приложение, у вас все равно могут возникнуть проблемы позже.   -  person Agent Chocks.    schedule 27.05.2014
comment
проверьте этот github.com/acerbetti/ACETelPrompt   -  person TonyMkenu    schedule 28.05.2014
comment
Я проверил код, который вы предоставили. Но он вычисляет продолжительность, используя applicationWillResignActive и applicationDidBecomeActive. Я думаю, это не будет работать для всех случаев. Например, если вызов по какой-либо причине не удался. Тогда пользователь не перейдет к приложению, и тогда расчет продолжительности не будет работать.   -  person DareDevil    schedule 30.05.2014
comment
Затем я попытался использовать структуру CTCoreTelephony. К сожалению, у него есть некоторые ошибки. Если вам интересно, вы можете проверить это (stackoverflow.com/questions/21195732/).   -  person DareDevil    schedule 30.05.2014


Ответы (1)


Сохраните NSDate, когда ваше приложение получит applicationWillResignActive, это будет началом вызова. Затем в applicationDidBecomeActive рассчитайте разницу между сохраненной NSDate и текущей датой. Это даст вам приблизительную оценку продолжительности разговора.

Ближе, чем это, вы никогда не сможете подойти.

person rckoenes    schedule 27.05.2014
comment
Спасибо, но я думаю, что это не будет работать для всех случаев. Например, если вызов по какой-либо причине не удался. Тогда пользователь не перейдет к приложению, и тогда расчет продолжительности не будет работать. - person DareDevil; 27.05.2014
comment
Другого варианта нет, поскольку нет доступных API для взаимодействия с телефонным звонком на нужном вам уровне. Это связано с конфиденциальностью пользователя. Либо примите это, либо создайте приложение на Android, где все это возможно. - person rckoenes; 27.05.2014
comment
что насчет CTCallCenter фреймворка CTCoreTelephony? - person DareDevil; 30.05.2014
comment
Что насчет этого? Он предназначен для отслеживания звонков, но не даст вам всей необходимой информации и плохо работает в фоновом режиме. - person rckoenes; 30.05.2014
comment
Да, были какие-то проблемы в фоновом режиме. Но я могу следить за установлением и завершением вызова. Это хорошо работает для приложения на переднем плане. Но иногда он транслирует событие отключения перед событием подключения (я звонил в IVR). Мне не удалось рассчитать продолжительность. Все еще ищу правильное решение... - person DareDevil; 30.05.2014
comment
До сих пор нет лучших решений. - person rckoenes; 30.05.2014