如何在 android smack 4.2.0-beta1 中使用 MucEnterConfiguration?

Posted

技术标签:

【中文标题】如何在 android smack 4.2.0-beta1 中使用 MucEnterConfiguration?【英文标题】:How to use MucEnterConfiguration in android smack 4.2.0-beta1? 【发布时间】:2017-02-24 15:45:21 【问题描述】:

我想重新加入房间并且不想要任何历史记录,但 DiscussionHistory 已被弃用。所以我找到了 MucEnterConfiguration 类。 但我无法创建 MucEnterConfiguration 的对象。

    MucEnterConfiguration 是最终类,因此它不能被扩展和 没有公共构造函数。

    MucEnterConfiguration.Builder 也是 final 类,所以不能是 扩展并且没有公共构造函数。

我如何创建它的对象。

谢谢

【问题讨论】:

阅读 MucEnterConfiguration 的 javadoc 对不起,我找不到 Java 文档,如果有链接或示例,请分享 download.igniterealtime.org/smack/dailybuilds/javadoc/org/… 感谢您的宝贵时间。 @NomanAhmedKhan 你能找到解决办法吗? 【参考方案1】:
EntityBareJid mucJid =  JidCreate.entityBareFrom(roomJid);
Resourcepart nickname = Resourcepart.from(nickname);
MultiUserChatManager manager = MultiUserChatManager.getInstanceFor(connection);

MultiUserChat muc = manager.getMultiUserChat(mucJid);
MucEnterConfiguration.Builder mec = muc.getEnterConfigurationBuilder(nickname);

String lastDate = "yourLastDate";
if(lastDate!=null)

    try 
        Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(lastDate);
        int secondsBetween = (int) ((new Date().getTime() - date.getTime()) / 1000);
        mec.requestHistorySince(secondsBetween - 1);
     catch (Exception e) 
        mec.requestNoHistory();
    
 else 
      mec.requestNoHistory();

MucEnterConfiguration mucEnterConfig = mec.build();
muc.join(mucEnterConfig);

【讨论】:

以上是关于如何在 android smack 4.2.0-beta1 中使用 MucEnterConfiguration?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 smack-android 连接到禁用安全功能的 ejabberd?

我们如何在 smack 或来自 android 的 xmpp 中获得对发件人的消息读取/看到确认

asmack/Smack 4.1 on android 设置

如何使用 Smack 从 android 客户端获取 openfire 在线注册用户?

如何使用 SMACK 在 Android XMPP 客户端中解析自定义花名册查询响应

我如何在 smack openfire android 中监听传入的订阅请求