【问题标题】:Upload data through mobile network - Objective C通过移动网络上传数据 - Objective C
【发布时间】:2014-01-21 07:11:24
【问题描述】:

在我的应用中,当用户接到一些电话时,我尝试上传一些数据。那么,是否可以在来电时或通话过程中通过 GSM 数据网络上传数据?谢谢。

【问题讨论】:

  • 您是否要记录通话并向您发送数据?根据我的信息,如果您有 3G 或更高版本的互联网,我们可以使用互联网

标签: ios iphone objective-c phone-call


【解决方案1】:

您可以使用Core Telephony framework 中的CTCallCenter 类来注册一个事件处理程序,以便您的应用在呼叫开始或结束时收到通知,您可以在那里做任何您想做的事情。

CTCall 提供以下 callState 属性

CTCallStateDialing

CTCallStateIncoming

CTCallStateConnected

CTCallStateDisconnected

希望它能帮助您解决问题。

【讨论】:

    【解决方案2】:

    首先,您需要在项目中添加 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多