首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在android中获取xmpp muc房间信息

无法在android中获取xmpp muc房间信息
EN

Stack Overflow用户
提问于 2014-10-10 09:15:28
回答 2查看 884关注 0票数 0

我正在使用asmack库作为我的聊天应用程序,在成功登录后使用下面描述的代码获取Muc房信息:

MultiUserChat mMultiUserChat =新MultiUserChat(连接,"VjNewMoiosandroid@conference.chat");mMultiUserChat.join(用户名);尝试{ if (mMultiUserChat.isJoined()==true) { RoomInfo MultiUserChat“VjNewMoiosandroid@conference.chat”;} catch (异常e) { // TODO:处理异常e.printStackTrace();}

当我得到房间信息时,当我调试和检查我在日志中得到房间信息时,我得到了这个错误,但是在roomInfo中什么都没有。

10-10 08:55:12.388: W/System.err(1821):org.jivesoftware.smack.util.PacketParserUtils$2 : java.lang.ClassCastException: java.lang.ClassCastException不能投给org.jivesoftware.smackx.packet.DiscoverInfo 10-10 08:55:12.428: W/System.err(1821):at org.jivesoftware.smackx.ServiceDiscoveryManager.discoverInfo(ServiceDiscoveryManager.java:600) 10-10 08:55:12.458: W/System.err(1821):at org.jivesoftware.smackx。ServiceDiscoveryManager.discoverInfo(ServiceDiscoveryManager.java:552) 10-1008:55:12.478: W/System.err(1821):at com.demo.xmppchat.CopyOfXMPPChatDemoActivity.getRoomInfo(CopyOfXMPPChatDemoActivity.java:469)

我在日志中收到的聊天室信息

代码语言:javascript
运行
复制
10-10 15:38:10.133: D/SMACK(26035): 03:38:10 PM RCV  (1107887640): <iq 
from='VjNewMoiosandroid@conference.chat' to='14393671556301070000@chat/Smack' 
id='VWaeO-6' type='result'><query xmlns='http://jabber.org/protocol/disco#info'><identity 
category='conference' type='text' name='VjNewMoiosandroid'/><feature var='
http://jabber.org/protocol/muc'/><feature var='muc_public'/><feature 
var='muc_persistent'/><feature var='muc_open'/><feature var='muc_semianonymous'/><feature 
var='muc_moderated'/><feature var='muc_unsecured'/><x xmlns='jabber:x:data' 
type='result'><field type='hidden' var='FORM_TYPE'><value>
http://jabber.org/protocol/muc#roominfo</value></field><field label='Room description' 
var='muc#roominfo_description'><value></value></field><field label='Number of occupants' 
var='muc#roominfo_occupants'><value>1</value></field></x></query></iq>
EN

回答 2

Stack Overflow用户

发布于 2014-10-10 10:30:54

我使用的是老的asmack jar,这是我的问题,我做了一些更改,我在类中直接使用了MultiUserChat类getRoomInfo()方法

MultiUserChat mMultiUserChat =新MultiUserChat(连接,"VjNewMoiosandroid@conference.chat");mMultiUserChat.join(用户名);尝试{ if (mMultiUserChat.isJoined()==true) { String roomInfo=getRoomInfo(连接,"VjNewMoiosandroid@conference.chat");} catch (异常e) { // TODO:处理异常e.printStackTrace();}

我做了一个方法如下

公共静态字符串getRoomInfo(连接连接,字符串空间)抛出XMPPException { String roomInfo=“;尝试{ ServiceDiscoveryManager serviceDiscoveryManager=new ServiceDiscoveryManager( connection );DiscoverInfo info = serviceDiscoveryManager.discoverInfo( room);roomInfo=info.toXML();} catch (XMPPException e) { // TODO:处理异常Log.e("xmpp",e.toString());}返回roomInfo;}

票数 1
EN

Stack Overflow用户

发布于 2014-10-10 09:30:22

这样做

替换这一行

代码语言:javascript
运行
复制
RoomInfo roomInfo=mMultiUserChat.getRoomInfo(connection,"VjNewMoiosandroid@conference.chat");

有了这个

代码语言:javascript
运行
复制
RoomInfo roomInfo=MultiUserChat.getRoomInfo(connection,"VjNewMoiosandroid@conference.chat");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26295888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档