2012-12-18 7 views
8

के साथ मेरे उपयोगकर्ता की उपस्थिति स्थिति बदलने में असमर्थ मैंने ऑनलाइन मोड सेट करने का प्रयास किया लेकिन यह रोस्टर के माध्यम से काम नहीं करता है। मैंने यह कोड चलाया और अपना लोकहोस्ट सर्वर जांच लिया, मोड अभी भी "उपलब्ध" है और "परेशान न करें"।स्मैक

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

उत्तर

19

क्योंकि आप सर्वर पर उपस्थिति पैकेट नहीं भेजते हैं। आपके उपस्थिति पैकेट को इकट्ठा करने के बाद आपको इसे भेजने की आवश्यकता है। उदाहरण के लिए:

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

यह भी देखें: Smack - Getting Started; section "Reading and Writing Packets"

+0

यह स्थापित करने के बाद, मैं इसे बाहर नहीं कर सकते। यही समस्या है। मैं इस तरह के एक समारोह की उम्मीद करता हूं: connection.getStatus(), connection.getMode(); – Emerald214

+1

धन्यवाद इसके प्रीफेक्ट काम कर रहे हैं :) –

+0

हाय @ फ्लो .. मैंने यह कोशिश की है..लेकिन यह केवल ऑनलाइन उपयोगकर्ताओं की स्थिति दिखा रहा है ... ऑफ़लाइन उपयोगकर्ताओं के लिए नहीं? सभी ऑफलाइन, ऑनलाइन उपयोगकर्ताओं की स्थिति कैसे प्राप्त करें? – BMM

संबंधित मुद्दे