呼叫建立后,来电设备无法接收回叫

时间:2017-03-31 10:02:54

标签: java android android-fragments video-streaming sinch

我在我的应用中使用Sinch SDK进行视频通话。该应用程序有一个MainActivity.java,可以打开几个片段。应用程序的结构/流程如下:

  • MainActiivty是启动器/启动活动
  • 打开LoginFragment。用户在登录片段中输入其凭据。
  • Loginfragment使用我自己的服务器验证信息,并为Sinch Video SDK登录生成唯一的userName。
  • Login Fragment将唯一的userName发送给MainActivity。 MainActivity执行以下代码以登录Sinch Video SDK

    getSinchServiceInterface().setStartListener(this);
    if (!getSinchServiceInterface().isStarted()) {
        getSinchServiceInterface().startClient(userName);
    }
    
  • MainActivity.java打开ProfileFragment.java。在此片段中,用户输入被调用者设备的名称。

  • ProfileFragment.java将 callee userName发送到MainActivity。 MainActivity执行以下代码来调用被调用者设备

    getSinchServiceInterface().callUserVideo(calleeUserName); 
    
  • 执行此操作后,当被叫设备接听电话时,来电设备不会收到任何回叫。因此,作为一种解决方法,我会监控SinchService 中的 onLogMessage(),以查找 onSessionEstablished 标记。

  • 当在SinchService.java中的onLogMessage中收到提到的标记时,我执行以下代码。

    Call call = getSinchServiceInterface().getCall(mCalleeID);
    if (call != null) {
        if (!mAddedListener) {
            call.addCallListener(new SinchCallListener());
            mAddedListener = true;
        }
    
        if (call.getState() == CallState.ESTABLISHED) {
            openVideoCallFragment(mCallId);
        }
    } else {
        Log.e(TAG, "Started with invalid callId, aborting.");
    }
    
  • 但是,执行此方法后,它只会提供以下日志消息:

       Started with invalid callId, aborting.
    

我不知道如何解决这个问题,或者我怎么知道被叫方设备何时接听电话。

我的MainActivity.java扩展了Sinch SDK示例应用程序中提供的BaseActivity.java。

0 个答案:

没有答案