为啥使用 quickblox sdk 从网站到 Android 在挂断电话上无法访问更新的会话信息?

Posted

技术标签:

【中文标题】为啥使用 quickblox sdk 从网站到 Android 在挂断电话上无法访问更新的会话信息?【英文标题】:Why does Updated Session Info not access on Hangup call by using quickblox sdk from Website to Android?为什么使用 quickblox sdk 从网站到 Android 在挂断电话上无法访问更新的会话信息? 【发布时间】:2016-04-26 05:51:12 【问题描述】:

我正在处理 quickblox 视频通话,我在创建新会话时将“名称”作为来自网络的用户信息中的键传递:

$(document).on('click', '.j-call', function(e) 

            var recp_login=$("#recipient_login").val();
            var recp_id=$("#recipient_id").val();

            var params =  'login':'ravindra.gupta' , 'password': 'ravi@agicent';

            QB.createSession(params, function(err, result) 
                if(!err)
                     var extension=
                            "userInfo": 
                               "coachname":app.caller.full_name,
                               "coachid":uid,
                               "coachimage":coachimg,
                               "message":app.caller.full_name + " is calling you"
                                
                            ;

                            app.currentSession.call(extension, function (error) 
                                if (error) 

                                    console.warn(error.detail);
                                 
                
            );

android 端,我从内部的用户信息中获取名称

public void onReceiveNewSession(final QBRTCSession session) 
        if (getCurrentSession() == null) 
            Log.e(TAG, "Start new session");

            session.getUserInfo().get("coachname");
        

    

当用户关闭(挂断)呼叫时,我正在传递更多信息(“状态”),我使用以下代码:

/** Hangup */
        $(document).on('click', '.j-hangup', function() 
            if(!_.isEmpty(app.currentSession)) 
                var extension=
                    "userInfo": 
                        "state":'Paused'
                    
                ;

        app.currentSession.update(extension);
        app.currentSession.stop(extension,function());
                app.currentSession = ;
                $(".msg_board").show();
                qbApp.MsgBoard.update('call has pauzed');
            
        );

但在 onReceiveHangUpFromUser() 函数内部的 android 端,我无法获取新数据(“状态”),我总是得到 null。

public void onReceiveHangUpFromUser(final QBRTCSession session,
            final Integer userID) 

        if (session.equals(getCurrentSession())) 

            String state = session.getUserInfo().get("state");
        

请帮我解决这个问题。

【问题讨论】:

【参考方案1】:

请告诉我,您使用哪个版本的 QuickBlox Android SDK?此问题已在 2.5.2 版中修复

【讨论】:

我正在使用适用于 Android 的 QuickBlox SDK 2.5 和适用于 Web 的 QuickBlox javascript SDK - v1.17.0【参考方案2】:

我已将 QuickBlox Android SDk 2.5 替换为 2.5.2 版本。 现在它工作正常,谢谢@Valentyn Tereshchenko

【讨论】:

以上是关于为啥使用 quickblox sdk 从网站到 Android 在挂断电话上无法访问更新的会话信息?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Quickblox SDK 未收到从 iOS 到 android 的推送通知

无需 SDK 将文件上传到 Quickblox,最好使用 Alamofire

将 Quickblox sdk 从 3.3.5 升级到 3.4.1 期间出现更新错误

如何管理 quickblox 会话 Javascript SDK

使用 QuickBlox Sdk 进行 VOIP 呼叫时通知不起作用

使用 QuickBlox 聊天 SDK 发送图像 - Android