我使用以下应用程序拨打电话:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://XXXXXXXXXX"]];
当用户结束通话时,Apple 提供的默认电话应用程序进入后台,我的应用程序恢复焦点。这会自动发生。
现在这就是我想要的:我想每次(并且仅在)用户从调用中返回时调用一个方法。
我尝试从applicationWillEnterForeground:
或调用此方法,applicationDidBecomeActive:
但是当应用程序从后台状态(我不想要)启动时,这些回调在其他时间被触发。
我想确定我的应用程序是从后台状态启动还是从电话返回,所以我只能在前一种情况下而不是后一种情况下执行某个任务。有任何想法吗?
- - 编辑 - -
这是我最终做到的方式:
请参阅:CallStateDisconnected 仅检测到来电,而不是从我的应用程序发出的呼叫
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self listenForCalls];
}
- (void)listenForCalls {
self.callCenter = [[CTCallCenter alloc] init];
self.callCenter.callEventHandler = ^(CTCall* myCall) {
NSString *call = myCall.callState;
if([call isEqualToString:CTCallStateDialing]) {
//do ur stuff
}
};
}