سؤال

أنا أستخدم إصدارًا ثنائيًا من Asmack (سأقوم بإنشائه بمجرد أن يكون لدي بعض الوقت حيث واجهت مشكلات في المرة الأولى التي حاولت فيها ذلك).لقد قمت أيضًا بإعداد خادم ejabberd الخاص بي.

عندما أحاول تحميل بعض جهات الاتصال VCard، يقوم الخادم بإرجاع المعلومات ولكن يبدو أن Asmack لا يعجبها (أو يفشل في تحليلها).

هذا ما يمكنني رؤيته في وضع التصحيح:

<iq from='user@domain' to='admin@domain/Smack' id='I17sI-4' type='result'>
<vCard xmlns='vcard-temp' prodid='-//HandGen//NONSGML vGen v1.0//EN' version='2.0'>
    <FN>Full Name</FN>
    <N>
        <FAMILY>Surname</FAMILY>
        <GIVEN>Nick</GIVEN>
    </N>
    <NICKNAME>Nickname</NICKNAME>
    <URL>http://google.com</URL>
    <ADR>
        <LOCALITY>lanta</LOCALITY>
        <REGION>krabi</REGION>
        <PCODE>81150</PCODE>
        <CTRY>thailand</CTRY>
    </ADR>
    <EMAIL>
        <USERID>user@domain.com</USERID>
    </EMAIL>
</vCard>
</iq>

لكن عندما أفعل

VCard card = new VCard();
card.load(xmppConn, "user@domain");

تم تعيين كافة المعلومات على قيمة خالية، وعندما أحاول إلقاء نظرة على XML عن طريق استدعاء طريقة VCard.toXML()، حصلت للتو على XML فارغ مثل هذا

<iq id="I17sI-4" to="user@domain" type="get"><vCard xmlns='vcard-temp'/></iq>

هل يعرف أحد ما الخطأ الذي أفعله أو إذا فشل هذا الإصدار الثنائي في تحليل VCard المستلم من الخادم؟

هل كانت مفيدة؟

المحلول

إضافة سطر: ProviderManager.getInstance().addIQProvider("vCard", "vcard-temp", new VCardProvider()); قبل تحميل vCard.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top