在smack

时间:2017-08-09 12:23:23

标签: android chat openfire smack

我可以使用Smack(doc)提供的MamManager类来获取一对一聊天的存档消息。但我要求在类似于应用程序的列表中显示用户列表以及最新消息。

enter image description here

有没有人知道如何使用smack& amp;开火?任何帮助,将不胜感激。感谢

1 个答案:

答案 0 :(得分:3)

使用Roster课程来获取Smack中的联系人。还要将这些联系人保留在本地数据库中以获得脱机支持。

用于实现Whatsapp,例如联系人导入。您必须从设备中提取联系人,然后将其添加到Roster。这样做的理想方法是通过Rest-API发送联系人,让服务器将其添加到Roster

初始化连接对象后,您可以附加一个名单监听器,如下所示:

val connection:XMPPTCPConnection // assuming you have the connection object
val roster = Roster.getInstanceFor(connection)
// NOTE: You should attach your roster listener even before calling connect() on your connection object.
// This way you get the roster list whenever the connection connects!
roster.addRosterLoadedListener(object:RosterLoadedListener{
    override fun onRosterLoaded(roster: Roster?) {
        // Update your database
    }
    override fun onRosterLoadingFailed(exception: java.lang.Exception?) {
        // Handle error
    }
})

对于持久化消息,您必须使用本地数据库(SQLite或某些ORM)