1

我已经成功集成了 Sinch SDK,并且它在应用程序打开时运行良好,现在我正在处理我的应用程序关闭时的调用。

当应用程序关闭时,当我点击通知时会有本地通知来电,它将进入呼叫屏幕,我们按下“接听”或“拒绝”,但我需要的是当我们点击我想要的通知时直接建立呼叫而不要求“接听”或“拒绝”。

我尝试在Appdelegate.m中调用方法-

   - (void)handleLocalNotification:(UILocalNotification *)notification  
    {
        CallViewController *obj=[CallViewController alloc];
        double delayInSeconds =2.0;
             dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
             dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
                [obj answeCallDireclty];
                 NSLog(@"Answer  ");

      });

调用视图控制器.m

-(void)answeCallDireclty
{
    [self.call answer];
}

- (IBAction)accept:(id)sender {
 //   [[self audioController] stopPlayingSoundFile];
    [self.call answer];

}

控制将到达 answerCallDireclty(); 方法,但呼叫未建立,只有当我按下“接听”按钮时,呼叫才会建立。

4

1 回答 1

3

在您的场景中,它可能取决于您如何处理-[SINCallClient client:didReceiveIncomingCall:]回调,我假设在这种情况下将 SINCall 分配给call视图控制器上的属性。例如,一旦应用程序返回前台,将调用该委托方法,这使您有机会将 SINCall 分配给call视图控制器上的属性,然后您可以在其上调用-[SINCall answer].

当你达到你的方法answerCallDirectly时,你确定吗?self.call还没有分配,而不是零?

(您还应该通过方法将本地通知中继到 Sinch SDK -[SINClient relayLocalNotification:],但在这种特殊情况下,我认为这不是问题)

于 2014-08-27T20:42:52.197 回答