내 앱에서 사용자가 전화를받을 때 일부 데이터를 업로드하려고합니다. 전화가 올 때 또는 전화가 진행되는 동안 GSM 데이터 네트워크를 통해 데이터를 업로드 할 수 있습니까? 감사.모바일 네트워크를 통해 데이터 업로드 - 목표 C
1
A
답변
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;
}
통화를 녹음하고 데이터를 보내려고하십니까? 내가 가지고있는 정보마다 인터넷의 3G 이상의 버전을 사용하면 인터넷을 사용할 수 있습니다. –