2014-01-21 3 views
1

내 앱에서 사용자가 전화를받을 때 일부 데이터를 업로드하려고합니다. 전화가 올 때 또는 전화가 진행되는 동안 GSM 데이터 네트워크를 통해 데이터를 업로드 할 수 있습니까? 감사.모바일 네트워크를 통해 데이터 업로드 - 목표 C

+1

통화를 녹음하고 데이터를 보내려고하십니까? 내가 가지고있는 정보마다 인터넷의 3G 이상의 버전을 사용하면 인터넷을 사용할 수 있습니다. –

답변

2

Core Telephony framework에있는 CTCallCenter 클래스를 사용하여 이벤트 처리기를 등록하면 통화가 시작되거나 끝나고 앱이 원하는대로 무엇이든 할 수 있습니다.

CTCall은 당신이 당신의 문제를 해결하는 데 도움이되기를 바랍니다 다음 callState 속성을

CTCallStateDisconnected

CTCallStateConnected

CTCallStateIncoming

CTCallStateDialing을 제공합니다.

0

먼저 프로젝트에서 CoreTelephony 프레임 워크를 추가해야합니다.

다음 코드를 시도해보십시오. 그것은 당신에게 흐름에 대한 명확한 이해를 줄 것입니다.

#import <CoreTelephony/CTCall.h> 
#import <CoreTelephony/CTCallCenter.h> 

static CTCallCenter *callCenter; 

@implementation AppDelegate 

- (void)dealloc 
{ 
    [_window release]; 
    [_viewController release]; 
    [super dealloc]; 
} 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    // Override point for customization after application launch. 
    self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease]; 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 



    if([[UIDevice currentDevice].systemVersion floatValue] >= 4.0) 
    { 
     callCenter = [[CTCallCenter alloc] init]; 
     callCenter.callEventHandler=^(CTCall* call) 
     { 
      NSLog(@":: Call id:%@",call.callID); 
      if (call.callState==CTCallStateDialing) 
      { 
       NSLog(@":: Call state:dialing"); 

      } 
      if (call.callState==CTCallStateIncoming) 
      { 
       NSLog(@":: Call state:incoming"); 
      } 
      if (call.callState==CTCallStateConnected) 
      { 
       NSLog(@":: Call state:Connected");     
      } 
      if (call.callState==CTCallStateDisconnected) 
      { 
       NSLog(@":: Call state:Disconnected"); 
      } 
     }; 
    } 


    return YES; 
}