2011-03-22 43 views
2

我希望在收到電話時觸發本地通知(並顯示警報) - 這可能嗎?通話事件是否可以啓動應用程序或發出通知?iOS:在接到電話時顯示提醒?

Skype如何解僱?通過推送通知?當各種事件發生

感謝

+0

Skype使用推送通知。 – MusiGenesis 2011-03-22 17:20:47

回答

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及更高版本中可用。

+0

是否可以在傳入呼叫屏幕上顯示一個類似覆蓋的Truecaller? – Nil 2016-12-20 07:17:23

2

您的應用程序委託會收到各種UIApplicationDelegate協議方法的調用。其中之一是- (void)applicationWillResignActive:(UIApplication *)application方法,該方法稱爲傳入呼叫或文本消息,但也可能因其他原因而被調用。

有關更多信息,請參閱UIApplicationDelegate protocol reference

+0

看起來像這個CoreTelephony引入了在iOS 4.0+中這樣做的能力,只要該應用程序正在運行。 http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Reference/CTCallCenter/Reference/Reference.html#//apple_ref/doc/uid/TP40009604 – Joe 2011-03-22 20:39:57

+0

謝謝喬。我已更新我的答案以刪除錯誤的部分。 – Greg 2011-03-22 20:46:17

+0

沒問題因爲我還沒有測試這個框架,所以一旦提問者選擇了一個答案,我將能夠再次給予+1。 – Joe 2011-03-22 20:51:10

1

而且,爲了回答沒人接觸過的問題,Skype正在使用專門用於保持應用程序在後臺運行以接收VOIP呼叫的背景方法。有一點它正在運行,等待被調用。除非您聲稱是用於VOIP或音頻用途的後臺應用程序,否則您無法這麼做 - 如果您聲明這一點,那麼最好是做,否則您將永遠不會訪問應用程序商店。