2012-12-18 7 views
8

Ich habe versucht, den Online-Modus zu aktivieren, aber es funktioniert nicht über einen Dienstplan. Ich habe diesen Code ausgeführt und überprüfe meinen lokalen Host-Server, der Modus immer noch "verfügbar" und nicht "Bitte nicht stören".Ich kann den Anwesenheitsstatus meines Benutzers mit Smack nicht ändern

final Connection connection = new XMPPConnection("xxx.xxx.x.xx"); 

connection.connect(); 
connection.login("[email protected]", "123456"); 

final Roster roster = connection.getRoster();   
Presence p = roster.getPresence("[email protected]"); 
p.setPriority(128); 
p.setMode(Mode.dnd); 

Antwort

19

Da Sie das Presence-Paket nicht an den Server senden. Nachdem Sie Ihr Presence-Paket zusammengestellt haben, müssen Sie es senden. Zum Beispiel:

Presence p = new Presence(available, "I am busy", 42, Mode.dnd); 
connection.sendStanza(p); 

Siehe auch: Smack - Getting Started; section "Reading and Writing Packets"

+0

es nach der Einstellung ich es nicht herauskommen kann. Das ist das Problem. Ich erwarte eine Funktion wie folgt: connection.getStatus(), connection.getMode(); – Emerald214

+1

Danke seine Präfekt funktioniert :) –

+0

hi @Flow ..Ich habe versucht dies..Aber es zeigt den Status von nur Online-Benutzer..nicht für Offline-Nutzer Wie erhalten Sie den Status aller offline, Online-Benutzer? – BMM

Verwandte Themen