我使用以下代码从我的应用程序发起电话:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"telprompt://XXXXXXXXXX"]];
当用户结束通话后,默认的苹果提供的电话应用程序进入后台,我的应用程序恢复焦点。这是自动完成的。
现在这里是我想要的: 我想每次(仅限于)用户从通话返回时调用一个方法。
我试图从applicationWillEnterForeground:
或 applicationDidBecomeActive:
调用此方法,但这些回调在其他时候被触发,例如从后台状态启动应用程序(这不是我想要的)。
我希望确定我的应用程序是从后台状态启动还是从电话通话返回,以便在前者中执行某个任务而不是后者。 有什么建议吗?
----编辑----
这是我最终的实现方式:
请参见:CallStateDisconnected only detected for incoming calls, not for calls made from my app
- (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
}
};
}