点击联系人列表中的好友,跳转到聊天界面ChatActivity
软件包org.jivesoftware.smack.chat已过时。里面的createChat,addChatListener方法也不推荐使用
在chat2包的ChatManage类有以下方法:
chatManage= ChatManager.getInstanceFor(conn)
监听和发送消息
//接收消息监听,发送消息 //貌似监听代码要写在发送消息代码之前 chatManage!!.addIncomingListener(object:IncomingChatMessageListener{ override fun newIncomingMessage(from: EntityBareJid?, message: Message?, chat: Chat?) { println("from:$from") println("message:$message") println("message:${message!!.body}") println("chat:$chat") } }) var jidStr=XmppStringUtils.completeJidFrom(friendName,conn!!.xmppServiceDomain.domain) //println("JidStr是:$jidStr") //与好友开启一个会话 var chat:Chat=chatManage!!.chatWith(JidCreate.entityBareFrom(jidStr)) //尝试发送一条消息 chat.send("~~~hello~~~my~~dear~friend") var msg: Message = Message() msg.body="a message" chat.send(msg)
运行:
这里我只是点击跳转到聊天界面就自动发两条消息。
聊天界面优化。大概就是一个ListView或其他控件,适配条目分为接收到的消息和发出去的消息,一个在左,一个在有。在监听到发出去消息,和收到消息的时候,更新适配的数据就行了~
原文:https://www.cnblogs.com/vocus/p/14243795.html