ho il seguente codice che dovrebbe ascoltare i messaggi:Smack messaggio ascoltatore non chiama e la connessione instabile
ChatManager chatmanager = ChatManager.getInstanceFor(xmppManager.getConnection());
chat = chatmanager.createChat(otherJabberId);
chat.addMessageListener(new ChatMessageListener() {
@Override
public void processMessage(Chat chat, Message message) {
Log.e("message trigger", message.getBody());
}
}
Ma il mio registro non innesca.
Tuttavia, ho setDebuggerEnabled(true)
nel mio codice e il seguente presenta: 10-31 15:41:51.264 28889-28993/com.lfdversluis.buurapp D/SMACK: RECV (0): <message to="[email protected]/Smack" type="chat" id="53" from="[email protected]/Gajim"><body>test</body><request xmlns="urn:xmpp:receipts"/><thread>277945c1-772a-4d4b-8e1a-274153cfb8a6</thread></message>
Quindi il messaggio viene ricevuto. Ho controllato e la variabile otherJabberId
è corretta. È semplicemente l'ascoltatore che non si attiva. Ciò che è ancora più strano, a volte funziona perfettamente.
Un altro problema che ho non è in grado di inviare messaggi.
Qui, ho la messa a punto chat come sopra e utilizzare il seguente codice per inviare un messaggio:
try {
chat.sendMessage(text.trim());
DataBaseManager db = new DataBaseManager(ChatActivity.this);
db.addMessageToDB(model);
addMessageToScreen(newMessage);
} catch (SmackException.NotConnectedException ignored) {
XMPPManager manager = XMPPManager.getInstance();
manager.reconnect(); // Maybe we need to reconnect due to an interrupt and retry..
try {
chat.sendMessage(text.trim());
DataBaseManager db = new DataBaseManager(ChatActivity.this);
db.addMessageToDB(model);
addMessageToScreen(newMessage);
} catch (SmackException.NotConnectedException e) {
e.printStackTrace();
Toasteroid.show(ChatActivity.this, "Could not send message. Please try again.", Toasteroid.STYLES.ERROR);
}
}
E il brindisi con il "non poteva inviare il messaggio" schiocca-up di tanto in tanto. Quindi apparentemente non sono connesso e non riesco a riconnetterlo?
Quindi, come posso rendere la mia connessione più stabile e assicurarmi che i miei messaggi vengano inviati?
Hmmm potrebbe essere un cambiamento interessante. Funziona attualmente, ma è piuttosto buggato. Forse questo sarà migliore. Lo proverò. – Gooey
Ho appena provato e questo non può essere fatto. '' addMessageListener() '' si aspetta un '' ChatMessageListener''. – Gooey
Questo codice è il mio ultimo codice della chat che funziona per il messaggio di chat di trigger! :) – pRaNaY