Ich habe den folgenden Code, der für Nachrichten hören sollte:Smack Nachricht Hörer nicht genannt und Verbindung instabil
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());
}
}
Aber mein Log nie auslöst.
Ich habe jedoch setDebuggerEnabled(true)
in meinem Code und folgendes erscheint: 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>
So die Nachricht empfangen wird. Ich habe überprüft und die otherJabberId
Variable ist korrekt. Es ist einfach der Zuhörer, der nicht auslöst. Was noch seltsamer ist, manchmal funktioniert es einfach gut.
Ein anderes Problem, das ich habe, ist nicht in der Lage, Nachrichten zu senden.
Hier habe ich den Chat-Setup wie oben und verwenden Sie den folgenden Code, um eine Nachricht zu senden:
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);
}
}
Und den Toast mit der „nicht-Nachricht senden könnte“ Pops-up ab und zu. Offensichtlich bin ich nicht verbunden und ich kann auch nicht wieder verbinden?
Also wie kann ich meine Verbindung stabiler machen und sicherstellen, dass meine Nachrichten gesendet werden?
Hmmm das könnte eine interessante Änderung sein. Es funktioniert derzeit, aber es ist ziemlich fehlerhaft. Vielleicht wird das besser. Ich werde es ausprobieren. – Gooey
Ich habe es gerade versucht und das kann nicht gemacht werden. '' addMessageListener() '' erwartet einen '' ChatMessageListener''. – Gooey
Dieser Code ist mein letzter Chat-App-Code, der für die Auslöse-Chat-Nachricht funktioniert! :) – pRaNaY