2012-12-18 8 views
8

Próbowałem ustawić tryb online, ale nie działa on poprzez listę. Uruchomiłem ten kod i sprawdziłem mój serwer localhost, tryb nadal "dostępny", a nie "Nie przeszkadzać".Nie można zmienić stanu obecności mojego użytkownika za pomocą Smack'a

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); 

Odpowiedz

19

Ponieważ nie wysyła się pakietu obecności do serwera. Po złożeniu pakietu Presence należy go wysłać. Na przykład:

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

Zobacz także: Smack - Getting Started; section "Reading and Writing Packets"

+0

Po ustawieniu go, nie mogę się tego pozbyć. To jest problem. Oczekuję takiej funkcji: connection.getStatus(), connection.getMode(); – Emerald214

+1

Dziękuję za perfekcyjną pracę :) –

+0

hi @Flow ..Próbowałem tego .. Ale to pokazuje status tylko użytkowników online .. nie dla użytkowników offline? Jak uzyskać status wszystkich offline, użytkowników online? – BMM