2017-02-20 72 views
0

有没有什么办法可以快速编程下载一个来电。我的代码是这样的:IOS以编程方式拒绝来电?

self.callCenter.callEventHandler = {(_ call: CTCall) -> Void in 
      if call.callState == CTCallStateDisconnected { 
       print("Call has been disconnected") 
      } 
      else if call.callState == CTCallStateConnected { 
       print("Call has just been connected") 
      } 
      else if call.callState == CTCallStateIncoming { 
       print("Call is incoming") 
       } 
      else { 
       print("None of the conditions") 
      } 

我用这种方式检测来电状态。但我不知道如何更改callstateCTCAll。请帮帮我 !。

+6

您无法做到这一点。至少对于非越狱设备。 –

+0

这里有一个客观的C代码: – bilaldogan

+1

这段代码告诉你电话是否正在通话。它不允许你修改状态。想象一下,如果苹果允许应用程序这样做,会发生什么情况,人们会创建恶意应用程序,通过断开呼叫基本瘫痪手机。 (总是假设这些应用程序可以通过Apple Review和App Process watch dog,这样它们可以在无限的时间内在后台运行)。答案是**否**,并有充分的理由! – NSNoob

回答

0
#import <CoreTelephony/CTCall.h> 
#import <CoreTelephony/CTCallCenter.h> 
#import <CoreTelephony/CTCarrier.h> 
#import <CoreTelephony/CTTelephonyNetworkInfo.h> 

@interface MMCallNotificationManager() 
@property (nonatomic, strong) CTCallCenter *callCenter; 
@property (nonatomic) BOOL callWasStarted; 
@end 

@implementation MMCallNotificationManager 

- (instancetype)init 
{ 
    self = [super init]; 

    if (self) { 

     self.callCenter = [[CTCallCenter alloc] init]; 
     self.callWasStarted = NO; 

     __weak __typeof__(self) weakSelf = self; 

     [self.callCenter setCallEventHandler:^(CTCall *call) { 

      if ([[call callState] isEqual:CTCallStateIncoming] || 
       [[call callState] isEqual:CTCallStateDialing]) { 

       if (weakSelf.callWasStarted == NO) { 

        weakSelf.callWasStarted = YES; 

        NSLog(@"Call was started."); 
       } 

      } else if ([[call callState] isEqual:CTCallStateDisconnected]) { 

       if (weakSelf.callWasStarted == YES) 
       { 
        weakSelf.callWasStarted = NO; 

        NSLog(@"Call was ended."); 
       } 
      } 
     }]; 
    } 

    return self; 
} 

@end 
+1

这根本不会修改呼叫状态。 –

+0

再一次,这只是告诉你电话是否在通话。它不会让你断开电话 – NSNoob

+0

以及有没有办法在来电时恢复应用。我正在尝试制作视频通话应用。我希望在来电时不要断开连接。 – bilaldogan