如何将自定义字段放入 XMPP vCard Android/SMACK

Posted

技术标签:

【中文标题】如何将自定义字段放入 XMPP vCard Android/SMACK【英文标题】:How to put Custom fields to XMPP vCard Android/SMACK 【发布时间】:2014-11-13 22:58:00 【问题描述】:

我目前正在开发一个聊天应用程序,我正在使用以下 Vcard 来存储用户信息。

public void run() 
VCard vcard = new VCard();
vcard.setJabberId(xmppConnection.getUser());
vcard.setNickName(user.getChatId());
vcard.setFirstName(user.getUsername());
vcard.setPhoneHome("CELL", user.getMobileNo()); 

除了上述值之外,我还想向 Vcard 添加新字段,例如

vcard.setNotificationType(user.getNotType())
vcard.setAlerts(user.getAlerts())

这可能吗?如果是这样,请帮助我如何做到这一点。 谢谢。

【问题讨论】:

小心,您似乎想将配置首选项存储在 Vcard 中。 VCard 是公开的,可以被其他人检索。 这不是问题,只要我能保存这些数据。有可能吗? 是的,这是可能的,但是您使用的功能与预期的需求完全不同。为什么不使用 XMPP 私有存储? xmpp.org/extensions/xep-0049.html 但简单性就在那里。我们可以申请电子名片,轻松保存电子名片并获取常用字段,如姓名、ID、电话号码。等等。我不是说你的建议不好,但这样更简单吧? 【参考方案1】:

我知道这是一个老问题,但也许有人需要答案..

您可以使用vCard.setField(String field, String value)

例如:

vcard.setField("NotificationType", user.getNotType());

然后把它拿回来:

vcard.getField("NotificationType");

【讨论】:

很高兴我能帮上忙 ^_^

以上是关于如何将自定义字段放入 XMPP vCard Android/SMACK的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 asmack 库发送和收听自定义 xmpp 存在数据包

如何通过 API 将自定义字段添加到 SalesForce 中的布局部分

如何将自定义单元格放入另一个自定义单元格?

如何将自定义类型作为输入参数放入可调用语句中

我怎样才能得到Friends vcard avtar photo xmpp ios

自定义 Ejabberd