使用Smack,我如何使用Smake从JID获取昵称/用户名。
注意,JID不在我的烘焙器中。
感谢。
答案 0 :(得分:0)
使用Smack的String Utils来解析JID的名称部分
String name = StringUtils.parseName(JID);
当你说它不在你的名册中时,你是如何通过JID的?你是从消息中得到的吗?
答案 1 :(得分:0)
对于面临这个问题的其他人来说可能为时已晚 来自smack:4.2.0
您可以使用JID单独获取所有部件。
如果你有像abcd @ xyzPc-599这样的JID
String local = XmppStringUtils.parseLocalpart(userObject.getUserId().toString());
Log.d(TAG, local); // print abcd
String domain = XmppStringUtils.parseDomain(userObject.getUserId().toString());
Log.d(TAG, domain); // print xyzPc-599
您可以查看XmppStringUtils的代码。
希望对某人有所帮助......答案 2 :(得分:0)
我们可以使用JID获取昵称,但我们必须在VCARD中添加所有用户
String nickname = smackHelper.getNickname(from);
public String getNickname(String jid) throws SmackInvocationException {
VCard vCard = vCardHelper.loadVCard(jid);
return vCard.getNickName();
}
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);
}
}