2017-02-20 66 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