Android 如何在聊天中使用smack通过xmpp发送联系人?

Android 如何在聊天中使用smack通过xmpp发送联系人?,android,xmpp,smack,vcf-vcard,Android,Xmpp,Smack,Vcf Vcard,我正在用android开发一个聊天应用程序。在这一点上,我想将联系人从发送方发送到接收方,类似于whatsapp/电报。我知道xmpp中有Vcard XEP。但我不知道如何使用它。谁能帮我一下吗。 提前感谢。您只能以文档形式发送信息。您可以做的是在文档中发送一个特殊的键,如果您发现该键激发了使用文档中的数据添加联系人的意图。如果您需要代码方面的帮助,请告诉我。要获取联系,firest需要在vacrd中保存条目,以获取联系loadVCard public class SmackVCardHelpe

我正在用android开发一个聊天应用程序。在这一点上,我想将联系人从发送方发送到接收方,类似于whatsapp/电报。我知道xmpp中有Vcard XEP。但我不知道如何使用它。谁能帮我一下吗。
提前感谢。

您只能以文档形式发送信息。您可以做的是在文档中发送一个特殊的键,如果您发现该键激发了使用文档中的数据添加联系人的意图。如果您需要代码方面的帮助,请告诉我。

要获取联系,firest需要
在vacrd中保存
条目,以获取联系
loadVCard

public class SmackVCardHelper {
        public static final String FIELD_STATUS = "status";

        private Context context;
        private XMPPConnection con;

        public SmackVCardHelper(Context context, XMPPConnection con) {
            this.context = context;
            this.con = con;
        }

        public void save(String nickname, byte[] avatar) throws SmackInvocationException {
            VCard vCard = new VCard();
            try {
                vCard.setNickName(nickname);
                if (avatar != null) {
                    vCard.setAvatar(avatar);
                }
                vCard.setField(FIELD_STATUS, context.getString(R.string.default_status));
                vCard.save(con);
            } catch (Exception e) {
                throw new SmackInvocationException(e);
            }
        }

        public void saveStatus(String status) throws SmackInvocationException {
            VCard vCard = loadVCard();
            vCard.setField(FIELD_STATUS, status);

            try {
                vCard.save(con);
            } catch (Exception e) {
                throw new SmackInvocationException(e);
            }
        }

        public String loadStatus() throws SmackInvocationException {
            return loadVCard().getField(FIELD_STATUS);
        }

        public VCard loadVCard(String jid) throws SmackInvocationException {
            VCard vCard = new VCard();
            try {
                vCard.load(con, jid);

                return vCard;
            } catch (Exception e) {
                throw new SmackInvocationException(e);
            }
        }

        public VCard loadVCard() throws SmackInvocationException {
            VCard vCard = new VCard();
            try {
                vCard.load(con);
                return vCard;
            } catch (Exception e) {
                throw new SmackInvocationException(e);
            }
        }
     }

谢谢你的努力。是的,你能给出它的示例代码吗?请不要只添加代码作为答案。解释它,以便OP和其他人可以从中学习