iOS: показывать оповещение при получении звонка? - PullRequest
2 голосов
/ 22 марта 2011

Я бы хотел, чтобы при получении вызова (и для показа предупреждения) было запущено локальное уведомление - возможно ли это?Может ли событие вызова получить приложение для запуска или уведомление для запуска?

Как работает скайп?С push-уведомлениями?

Спасибо

Ответы [ 4 ]

2 голосов
/ 22 марта 2011

Ваш представитель приложения будет получать вызовы к различным методам протокола UIApplicationDelegate, когда происходят различные события.Одним из них является метод - (void)applicationWillResignActive:(UIApplication *)application, который вызывается для входящих вызовов или текстовых сообщений, но может вызываться и по другим причинам.

См. Справку по протоколу UIApplicationDelegate для получения дополнительной информации..

1 голос
/ 22 марта 2011

И, чтобы ответить на ту часть вашего вопроса, которой еще никто не коснулся, Skype использует фоновые методы, специально предназначенные для поддержки приложения в фоновом режиме для приема вызовов VOIP. Немного из этого на самом деле работает, ожидая вызова. Если вы не претендуете на то, чтобы быть фоновым приложением для VOIP или аудио целей, вы не сможете этого сделать - и если вы ДЕЙСТВИТЕЛЬНО утверждаете, что вы это делаете, или вы никогда не попадете в магазин приложений.

1 голос
/ 22 марта 2011

Если ваше приложение работает во время вызова, проверьте CoreTelephony Framework . Класс CTCall предоставляет информацию о состоянии вызова. Я не использовал это сам, но вы можете найти это полезным.

extern NSString const *CTCallStateDialing;
extern NSString const *CTCallStateIncoming;
extern NSString const *CTCallStateConnected;
extern NSString const *CTCallStateDisconnected;

Edit:

CTCallCenter позволяет регистрироваться для изменения состояния события вызова. Как я уже говорил, ваше приложение должно быть запущено, чтобы знать, что что-то изменилось. Вы можете запросить максимальное время фоновой обработки (я думаю, что сейчас оно составляет 10 минут), когда ваше приложение перемещается в фоновый режим. Эти API доступны только в iOS 4.0 и более поздних версиях.

0 голосов
/ 22 марта 2011

Лучшее, что вы можете сделать, - это подключить метод applicationWillResignActive, который вызывается в основном всякий раз, когда ваше приложение теряет фокус (что происходит, когда поступает вызов, но также происходит по другим причинам, поэтому он не идеален).

См .: http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html

...