iOS:在接到电话时显示警报?

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

Skype如何解雇? 推送通知?

谢谢

如果您的应用程序正在运行,而且正在调用CoreTelephony Framework 。 CTCall类提供有关呼叫状态的信息。 我没有使用这个自己,但你可能会觉得它有用。

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

编辑:

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

当发生各种事件时,您的应用程序委托将接收对各种UIApplicationDelegate协议方法的调用。 其中一个是- (void)applicationWillResignActive:(UIApplication *)application方法,它被称为传入呼叫或文本消息,但也可能因为其他原因而被调用。

有关更多信息,请参阅UIApplicationDelegate协议参考 。

而且,为了回答你的问题中没有人涉及到的部分,Skype正在使用专门用于保持应用程序活跃于后台的后台方法来接收VOIP呼叫。 有一点它正在运行,等待被调用。 除非您声称是用于VOIP或audio目的的后台应用程序,否则您不能这么做 – 如果您声称这样做,那么您最好是做,否则您将永远不会去应用程序商店。

你可以做的最好的方法就是挂上applicationWillResignActive方法,当你的应用程序失去焦点时(这种情况发生在一个调用进来时,也会发生其他原因,所以它不是完美的)。

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