2013-01-08 23 views
7

मैं लाइब्रेरी और एंड्रॉइड प्लेटफॉर्म पर एस्मैक का उपयोग करके चैट एप्लिकेशन पर काम कर रहा हूं। क्या कोई तरीका है कि रोस्टर में दोस्त जोड़ने से पहले क्या मैं उस मित्र को सर्वर पर मौजूद कर सकता हूं या नहीं?जांचें कि कोई उपयोगकर्ता XMPP में सर्वर पर मौजूद है (ए) smack

उत्तर

7

मैं इस सवाल का जवाब मिल गया:

UserSearchManager search = new UserSearchManager(mXMPPConnection); 
Form searchForm = search 
    .getSearchForm("search." + mXMPPConnection.getServiceName()); 

Form answerForm = searchForm.createAnswerForm(); 
answerForm.setAnswer("Username", true); 
answerForm.setAnswer("search", user); 
ReportedData data = search 
    .getSearchResults(answerForm, "search." + mXMPPConnection.getServiceName()); 

if (data.getRows() != null) { 
    for (ReportedData.Row row: data.getRows()) { 
     for (String value: row.getValues("jid")) { 
      Log.i("Iteartor values......", " " + value); 
     } 
    } 
    Toast.makeText(_service, "Username Exists", Toast.LENGTH_SHORT).show(); 
} 

यदि सर्वर है कि निर्दिष्ट नाम के साथ किसी भी entery नहीं है तो Itearator यह कोई मूल्य नहीं है और कोड के अंदर है, जबकि (it.hasNext) नहीं जाना होगा ..

+1

नोट कि xmpp कनेक्शन सत्र पहले अधिकृत होना चाहिए। उदाहरण के लिए - यदि आप एक नया खाता पंजीकृत कर रहे हैं - आप उपयोगकर्ता नाम उपलब्धता की जांच के लिए इस विधि का उपयोग नहीं कर सके। –

+1

@nitin tyagi answerForm.setAnswer ("उपयोगकर्ता नाम", सत्य); इस मामले में answerForm.setAnswer ("खोज", उपयोगकर्ता) में उपयोगकर्ता मान क्या है; यह उपयोगकर्ता नाम या अन्य है। – Mahi

+0

@ माहीसिंह क्या आप पहले ही जानते हैं कि उपयोगकर्ता उपयोगकर्ता नाम या जैबरिड है? – Tijme