fri*_*end 24 iphone xcode objective-c phone-call ios
我环顾四周,我能找到的就是检查CTCallCenter的callState.但是,这可以通过监听事件来实现 - 根据应用程序是处于活动状态还是暂停/恢复事件,可以在不同时间引发事件.
我需要的不是听事件,而是在连接呼叫时被告知,我想决定自己何时询问呼叫是否已连接.
使用案例:当连接电话时 - 用户知道并将始终点击应用程序图标,这将打开应用程序.这时我只想运行一个快速功能来检查当前是否正在通话.
这甚至可能吗?
AlB*_*ebe 27
#import <CoreTelephony/CTCallCenter.h>
#import <CoreTelephony/CTCall.h>
-(bool)isOnPhoneCall {
/*
Returns TRUE/YES if the user is currently on a phone call
*/
CTCallCenter *callCenter = [[[CTCallCenter alloc] init] autorelease];
for (CTCall *call in callCenter.currentCalls) {
if (call.callState == CTCallStateConnected) {
return YES;
}
}
return NO;
}
Run Code Online (Sandbox Code Playgroud)
Tho*_*asW 25
该CTCallCenter对象具有currentCalls属性,该属性是NSSet当前调用的属性.如果有电话,那么该currentCalls属性应为!= nil.
如果您想知道是否实际连接了任何呼叫,那么您必须遍历当前呼叫并检查callState以确定它是否CTCallStateConnected存在.
谢谢你的回答ThomasW.我以为我也会发布代码.
- (void)applicationWillEnterForeground:(UIApplication *)application
{
CTCallCenter *ctCallCenter = [[CTCallCenter alloc] init];
if (ctCallCenter.currentCalls != nil)
{
NSArray* currentCalls = [ctCallCenter.currentCalls allObjects];
for (CTCall *call in currentCalls)
{
if(call.callState == CTCallStateConnected)
{
// connected
}
}
}
}
Run Code Online (Sandbox Code Playgroud)