- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用 aSmack(适用于 Android 的 Smack 端口)连接到 XMPP 服务器(Openfire 3.7.1)并与之通信。就使用 MultiUserChat 类发送消息而言,我可以获得多用户聊天功能。但是,调用任何列出房间居住者的方法都会失败。相关代码:
setDefaultConnection();
if(connection!=null) {
mMuc = new MultiUserChat(connection, "hermitage_recycling@conference.jmartinw7");
try {
mMuc.join("chester");
mMuc.getModerators(); //line 71
ArrayList<Affiliate> dudes = new ArrayList<Affiliate>(mMuc.getMembers());
Iterator<Affiliate> iter = dudes.iterator();
while(iter.hasNext()) {
Affiliate dude = iter.next();
Log.w(this.getClass().getName(), dude.getNick());
}
} catch(XMPPException xmppe) {
Log.w(this.getClass().getName(), "MUC error: "+xmppe.getMessage());
}
}
日志:
07-10 13:38:56.248: ERROR/AndroidRuntime(13003): FATAL EXCEPTION: main
java.lang.ClassCastException: org.jivesoftware.smack.util.PacketParserUtils$2
at org.jivesoftware.smackx.muc.MultiUserChat.getOccupants(MultiUserChat.java:1797)
at org.jivesoftware.smackx.muc.MultiUserChat.getModerators(MultiUserChat.java:1761)
at org.apache.android.xmpp.XMPPClient$1.onClick(XMPPClient.java:71)
at android.view.View.performClick(View.java:2532)
库有问题还是我做错了什么? getOccupants() 似乎有效。
MultiUserChat 示例和 javadocs:
http://www.igniterealtime.org/builds/smack/docs/latest/javadoc/
http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/index.html
打个响指:
http://code.google.com/p/asmack/
http://code.google.com/p/asmack/issues/detail?id=72
最佳答案
我相信您的问题是由 asmack 加载 smack.providers 文件失败引起的,该文件告诉 asmack 要加载哪些类。如果您阅读自述文件,它描述了如何将 smack.providers 文件加载到 asmack(感谢 Flow)。您需要在开始任何 XMPP Activity 之前执行此操作。
尝试 https://github.com/Flowdalic/asmack ,因为您正在使用的版本已经 2 年没有更新了。
关于android - aSmack + Android : MultiUserChat class; getMembers, getModerators 等不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11420514/
我正在使用 Asmack API 在 android 上创建一个多用户聊天室,我想通过使用获取所有托管的房间 MultiUserChat.getHostedRooms(connection, serv
我正在基于 asmack 库在 Android 上开发聊天应用程序。我创建了 1 个用户并在好友列表中添加了 3 个 friend 。当我使用名册显示好友列表时。我无法在好友列表中获取所有用户,只有
我正在尝试为我的聊天应用程序实现离线文件扩展。我正在使用 PacketExtension 和 EmbeddedExtensionProvider 添加和解析自定义扩展。我可以看到在发送消息时添加了值和
基本上我有一个运行整个项目的主类。该代码运行良好,但一旦应用程序失去焦点,它就会变得不活动。我想知道我将如何让它成为一项服务。一个会在启动时启动的。 该应用程序将是一种用于通知的单向消息系统。即 De
我有一个 aSmack 实现的应用程序,(8-4.0.5),据我们所知,它有一个内部重新连接管理,但它并不令人满意,因为有时我们应该等待 5 分钟才能重新连接,而我们现在知道这是一个这样做的好时机,所
我正在我正在开发的 Android 应用程序中使用 asmack xmpp 客户端,并希望使用压缩。我找到了 setCompressionEnabled,但当我尝试它时,它告诉我我需要 smackx。
我正在使用 asmack 库,并面临多用户聊天请求的问题。 发送 session 请求时,它不会进入邀请监听器,尽管相同的代码在 java 中使用 smack 库。 调试时它显示我正在接收消息,但没有
我完全按照答案建议的操作( Asmack not loading VCard ),但它仍然不起作用。 DEBUG 输出显示 Smack 收到带有 VCard 信息的数据包,但随后在 https://g
我正在努力让 aSmack 在我的项目中发挥作用。在 eclipse 中创建一个标准项目,添加 jar 以构建路径/库。开始使用 XMPP 类,但我不确定我是否应该做其他事情来正确设置项目(稍后再说)
我正在开发 Android 平台上的聊天应用程序。我想通过 xmpp 库中的 PubSub 共享我的当前位置。谁能给我代码,说明如何使用 pubsub API。 提前致谢。 最佳答案 Smack do
我建立了一个基于 aSmack 的应用程序,显然所有关于连接的东西都在一个服务中运行,所以保持它的连接是非常重要的,因为我们知道在后台运行的服务可能会在手机资源不足时被杀死(通常是 Ram),因此在服
我在我的 android 应用程序中使用 aSmack 库进行群聊,我的问题是有时当连接丢失时,ReconnectionManager 无法重新连接并出现此错误: java.lang.IllegalT
我在通过 XMPP 发送图像时遇到了一个问题。下面是我完成的代码 fragment 。我不知道代码有什么问题。 Message msg = new Message(emailId, Message.T
我不熟悉 smack 库的使用和制作一个聊天应用程序。当我添加 friend 时,从这段代码..,它有效。 public void Addcontact() { Roster.setDefaul
我正在使用 Asmack 的二进制版本(我会尽快构建它,因为我第一次尝试时遇到了问题)。我还设置了自己的 ejabberd 服务器。 当我尝试加载一些联系人 VCard 时,服务器返回信息但 Asma
我尝试用 asmack 编写一个 android 演示。存在名为 “host-unknown” 的错误。我该如何解决? 这是我在 LogCat 中看到的: 03-16 08:31:10.671: I/
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
我遇到了 XML 节中缺少属性的问题。根据服务器端的日志文件,我可以确认属性是从客户端发送到服务器的。此外,当服务器将 XML 节传递给接收者时,该属性也存在(仍然基于服务器端的日志文件)。问题是,当
我无法使用 asmack 接收文件,但我能够发送文件。下面是接收文件的代码,请告诉我我做错了什么 ServiceDiscoveryManager serv= new Ser
我正在使用 openfire 和 asmack 库。我正在 android 聊天应用程序中实现在线 和离线 按钮。如何将我的在线状态设置为“不可用”。 注意:我不想使用connection.disco
我是一名优秀的程序员,十分优秀!