如在asmack documentation中看到的那樣,當您從Chat的MessageListener中的processMessage()方法中收到一個Chat類型消息時,我應該使用Chat.sendMessage()來發回此消息以通知消息接收。使用Asmack在XMPP中回覆消息
但是在我的聊天實現中,當打開一對一聊天時我不使用ChatManager,我有一個Service和Listener來完成這些事情。
服務中我有一個PacketListener可以接收,並且我正在嘗試正確地發送回消息,正如我在asmack documentation中看到的,但它不起作用。
this.xmppChat.addPacketListener(new PacketListener() {
@Override
public synchronized void processPacket(Packet packet) {
Message message = (Message) packet;
if (message.getType() == Message.Type.chat) {
Log.i("XMPP_SERVICE",
String.format("Mensaje recibido de %s",
message.getFrom()));
// Rest of code implementation...
// At the end try to send back message to notify reception.
XMPPService.this.xmppChat.sendMessage(new Message(message.getBody()));
}
}
}, new PacketTypeFilter(Message.class));
的XMPPService.this.xmppChat.sendMessage(消息消息)方法:
public boolean sendMessage(Message message) {
Log.i("XMPP_INFO", "Enviando el mensaje");
try {
this.xmppManager.getConnection().sendPacket(message);
Log.i("XMPP_INFO", "Enviado el mensaje");
return true;
} catch (Exception ex) {
Log.e("XMPP_ERROR", ex.getMessage());
return false;
}
}
我做錯了什麼?我怎樣才能解決?
此致敬禮,並提前致謝。
什麼不起作用?一些細節會有幫助。 – Flow