我正在尝试使用aSmack在Android手机之间设置XMPP通信的基础知识。我已经设法从我的应用程序注册一个帐户,并将消息发送到我登录到我的PC上的Jabber-ID。问题是我的PC客户端的回复似乎没有收到,我的MessageListener中的processMessage()似乎没有被调用。
try{connection.login("kmomochesstest", "password1");}
catch(Exception e){Log.e("connection","Account login error: " + e.toString());}
chat = connection.getChatManager().createChat("chesstestpc@macjabber.de", new MessageListener() {
public void processMessage(Chat chat, Message message) {
try{System.out.println(message.getBody());}
catch(Exception e){Log.e("connection","Message send error: " + e.toString());}
});
try{chat.sendMessage("Test Message from Activity");Log.d("connection","Just sent Message ");}
catch(Exception e){Log.e("connection","Message send error: " + e.toString());}
此时我正在尝试打印到控制台,但我已经尝试打印到日志,然后用chat.sendMessage(message.getBody())回显我的电脑。似乎没有注册传入的消息。这似乎是我在网上找到的每一个操作方式的格式。
答案 0 :(得分:0)
您使用的是什么版本的Smack?
在尝试将不包含线程ID的消息与使用其中一个创建的现有聊天(如Smack一样)匹配时,早期版本中存在问题。例如,Pidgin不使用线程ID,这会在收到消息时创建一个新的聊天实例。
3.2中的匹配过程得到了改进,以防止这种情况发生。
尝试创建一个ChatManagerListener,看看你是否从你的回复中创建了新的聊天。