iOS:在接听电话时显示提醒?

时间:2011-03-22 17:10:18

标签: iphone ios notifications call uilocalnotification

我希望在收到电话时发出本地通知(并显示提醒) - 这可能吗?呼叫事件是否可以启动应用程序或触发通知?

Skype是如何解雇的?推送通知?

由于

4 个答案:

答案 0 :(得分:2)

当各种事件发生时,您的应用程序委托将接收对各种UIApplicationDelegate协议方法的调用。其中一种是- (void)applicationWillResignActive:(UIApplication *)application方法,可以调用来电或短信,但也可以出于其他原因调用。

有关详细信息,请参阅UIApplicationDelegate protocol reference

答案 1 :(得分:1)

如果您的应用程序在通话过程中正在运行,请查看CoreTelephony FrameworkCTCall类提供有关呼叫状态的信息。我自己没有用过它,但你可能觉得它很有用。

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

修改

CTCallCenter允许您注册呼叫事件状态更改。正如我之前所说,你的应用程序需要运行才能知道某些内容已发生变化。当您的应用程序移至后台时,您可能需要请求最长的后台时间(我认为现在是10分钟)。这些api仅适用于iOS 4.0及更高版本。

答案 2 :(得分:1)

而且,为了回答你的问题没有人接触过,Skype正在使用专门用于让应用程序在后台运行以接收VOIP呼叫的后台方法。它的一小部分实际上正在运行,等待被调用。除非你声称自己是VOIP或音频用途的后台应用程序,否则你不能这样做 - 如果你声称这样做,你最好这样做,或者你永远不会去应用程序商店。

答案 3 :(得分:-1)

你可以做的最好的事情是挂钩applicationWillResignActive方法,当你的应用程序失去焦点时会被调用(这种情况在调用时会发生,但也会因其他原因而发生,因此它并不完美)。 / p>

请参阅:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html