Ich entwickle eine Chat-Anwendung für Android mit Asmack. Die Verbindung wird aufgebaut und ich kann mich auch anmelden. Ich habe Listener für IQ-Pakete hinzugefügt, und das funktioniert gut. Ich habe für Presence-Pakete hinzugefügt Zuhörer auch, hier ist mein Code:Presence Listener funktioniert nicht in asmack
PacketTypeFilter presenceFilter=new PacketTypeFilter(Presence.class);
connection.addPacketListener(new PacketListener() {
public void processPacket(Packet packet) {
Presence presence = (Presence)packet;
Log.d("test1","Presence packet came :From:"+presence.getFrom()+",Packet ID:"+presence.getPacketID()+",Priority:"+presence.getPriority()+",To:"+presence.getTo()
+",Exn:"+presence.toXML());
if (presence.getType() == Presence.Type.available) {
Log.d("test1","User available");
}
else if (presence.getType() == Presence.Type.unavailable) {
Log.d("test1","User not available");
}
}
}, presenceFilter);
Mein Problem ist, wird dieser Zuhörer nie für alle eingehenden Presence-Pakete genannt zu werden. Es funktioniert für ausgehende. Ich kann Roster nicht für die Anwesenheitsverwaltung verwenden, da unser Server einen Intelligent Routing Service für die Handhabung der Benutzerverfügbarkeit verwendet. Mache ich hier etwas falsch? Jede Eingabe ist hilfreich.