Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Quickblox管理会话和召回?_Android_Quickblox - Fatal编程技术网

Android Quickblox管理会话和召回?

Android Quickblox管理会话和召回?,android,quickblox,Android,Quickblox,我正在使用QuickBlox库进行视频聊天。如何管理it会话??因为当我从live chat活动转到下一个活动时,我刚刚丢失了会话,因为它说“chat can not initialized”,然后我必须再次创建会话来进行调用。那么quickblox会话的生命周期是什么,我如何管理它呢 我还面临着在停止通话或转到下一个活动时回忆的问题,并试图回忆我无法做到这一点,实际上我尝试了不同的事情,因此每次我都会遇到不同的错误。因此,如果任何人有使用QuickBlox库的经验,请在此处寻求帮助 当我停止一

我正在使用QuickBlox库进行视频聊天。如何管理it会话??因为当我从live chat活动转到下一个活动时,我刚刚丢失了会话,因为它说“chat can not initialized”,然后我必须再次创建会话来进行调用。那么quickblox会话的生命周期是什么,我如何管理它呢

我还面临着在停止通话或转到下一个活动时回忆的问题,并试图回忆我无法做到这一点,实际上我尝试了不同的事情,因此每次我都会遇到不同的错误。因此,如果任何人有使用QuickBlox库的经验,请在此处寻求帮助

当我停止一个调用时,我调用这个函数

private void stopCall() {

        //Toggle view show the smile view again

        //ToggleSmileView();

        try
        {
            cancelCallTimer();

            if (videoChat != null) {
                videoChat.stopCall();
                videoChat = null;
            }
            if (videoChannel != null) {
                videoChannel.close();
                videoChannel = null;
            }

            sessionId = null;
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
当我调用时,我调用这个函数

 private void call() {

    //toggle view 
    //ToggleSmileView();

    // get opponent
    //
    VideoChatApplication app = (VideoChatApplication)getApplication();
    opponent = new QBUser();
    opponent.setId((app.getCurrentUser().getId() == VideoChatApplication.FIRST_USER_ID ? VideoChatApplication.SECOND_USER_ID : VideoChatApplication.FIRST_USER_ID));

    // call
    //
    callTimer = new Timer();
    callTimer.schedule(new CancelCallTimerTask(), 30 * 1000);

    createSenderChannel();
    initVideoChat();

    if (videoChat != null) 
    {
        videoChat.call(opponent, getCallType(), 3000);
        //toggleMicrophoneMute();
    } 
    else 
    {
        logAndToast("Stop current chat before call");
    }
}
对于:quickblox会话的生存期以及我如何管理它。

要对应用程序进行身份验证,必须设置有效的身份验证密钥和 使用应用程序auth_secret生成签名并接收 应使用会话令牌向QuickBlox API发送请求

以及

令牌的过期时间为2小时。请注意这一点。如果 您将使用过期的令牌执行查询-您将收到错误消息 所需的会话不存在

资料来源:

这部分符合创建会话的Android示例代码

QBAuth.createSession(new QBEntityCallbackImpl<QBSession>() {
    @Override
     public void onSuccess(QBSession session, Bundle params) {
        Log.i(TAG, "session created, token = " + session.getToken());
     }
     @Override
     public void onError(List<String> errors) {

     }
});
QBAuth.createSession(新的QBEntityCallbackImpl(){
@凌驾
成功时公共无效(QBSession会话,Bundle参数){
Log.i(标记,“会话已创建,令牌=“+session.getToken());
}
@凌驾
公共无效onError(列表错误){
}
});
资料来源:

我曾经使用过Android SDK,但觉得它仍然需要一些工作,特别是要达到与iOS SDK和REST API相当的阶段

虽然查看代码,但在创建新的
QBUser
和相关视频聊天呼叫之前,您应该使用
getToken()
,如果令牌已过期,只需创建一个新的令牌即可。
我已经实现了类似的代码,不是视频聊天应用程序,而是在会话创建的
onSuccess()
中编写函数(如果需要重新创建会话)


仅供参考,对于多个,您可以尝试使用已给出的摘要检查错误,分为4类

如果您使用的是Android SDK或REST API(?)我使用的是Android SDKC,您可以用代码解释一下,第二段不清楚的是使用Quickblox的聊天应用程序示例。这会很有帮助的,请查看编辑很好,这很有帮助,但这是我问题的一半答案?当参与者停止呼叫并尝试再次呼叫时,其他参与者不接受呼叫请更清楚地解释第二段,我不明白你的意思请检查此项,请解释如何使用令牌继续会话?我使用的是android sdk,像http:api.quickbloz.session.json这样的api不是直接公开的,因此我不能用每个rest api发送令牌,因为它的quickblox jar点击了这个,并且没有directky公开。我尝试使用
createSessionWithExistanceToken
创建会话,但我创建了会话,但呼叫无法接收。请详细解释这个答案