Android Smack 4.2:“XMPPError: feature-not-implemented - cancel”(错误)
Posted
技术标签:
【中文标题】Android Smack 4.2:“XMPPError: feature-not-implemented - cancel”(错误)【英文标题】:Android Smack 4.2 : "XMPPError: feature-not-implemented - cancel" (Error) 【发布时间】:2017-06-02 12:40:43 【问题描述】:我正在尝试检索Archived Messages From OpenFire
请注意:
-
我已添加存档消息插件。
相同的代码在本地运行良好,openfire 的服务器安装没有抛出错误。
我已经浏览了互联网上提供的所有解决方案,但未能成功。
我可以在 openfire 面板中看到存档的消息。
下面是检索消息的代码:
public MamManager.MamQueryResult getArchivedMessages()
//org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: feature-not-implemented - cancel
try
MamManager mamManager = MamManager.getInstanceFor(connection);
boolean isSupported = mamManager.isSupportedByServer();
if (isSupported)
MamManager.MamQueryResult mamQueryResult = mamManager.pageAfter(JidCreate.from(mUsername + SERVICE_NAME), "2r2Vf-68", 250);
List<Forwarded> forwardedMessages = mamQueryResult.forwardedMessages;
Forwarded d = forwardedMessages.get(0);
catch (Exception e)
e.printStackTrace();
return null;
除此之外,我也在尝试为smack 4.2
实现OfflineMessageManager
下面是离线管理的代码:
public static void handleOfflineMessages() throws Exception
OfflineMessageManager offlineMessageManager = new OfflineMessageManager(getConnection());
if (!offlineMessageManager.supportsFlexibleRetrieval())
return;
if (offlineMessageManager.getMessageCount() == 0)
String d = "ss";
else
List<Message> msgs = offlineMessageManager.getMessages();
for (Message msg : msgs)
BareJid fullJid = msg.getFrom().asBareJid();
String messageBody = msg.getBody();
if (messageBody != null)
// offlineMessageManager.deleteMessages();
注意:上面的方法没有抛出任何错误我总是 得到消息计数= 0。我在关注官方 文档为此。即不发送存在以使所有离线 消息。但没有这样做。
这是官方文档的链接:OfflineMessageManager
谁能指出我做错了什么?
【问题讨论】:
关于未实现 MAM 功能,您能说说您使用的 Openfire、Archive Plugin 和 Smack 的版本吗? 关于离线消息,您是否确认您的离线消息确实存储在服务器上?您可以查看 Openfire 数据库中的消息吗? 我的存档插件的版本是:Monitors conversations and statistics of the server : 1.5.7: IgniteRealtime // Jive Software
抱歉,我无法验证离线消息在 openfire 数据库中的存储位置,请告诉我如何检查以及选项在哪里
我已经添加了数据库访问插件,我正在尝试获取数据库,但我在每个数据库中都看到了 null
【参考方案1】:
在 OF 中的插件处重新加载 监控服务 都这样
【讨论】:
以上是关于Android Smack 4.2:“XMPPError: feature-not-implemented - cancel”(错误)的主要内容,如果未能解决你的问题,请参考以下文章
Android Smack 4.2:“XMPPError: feature-not-implemented - cancel”(错误)
我在使用 smack 4.2 Openfire 创建 XMPP 客户端时遇到问题
在与 Smack 4.2 重新连接后发送离线消息时,经过身份验证的侦听器出现异常
SASLErrorException: SASLError using DIGEST-MD5: not-authorized while using Smack 4.2