XMPP无法找到自己的别名/昵称

时间:2015-02-28 04:14:00

标签: xmpp smack asmack

我正在尝试检索我自己的(即登录用户的)别名,但还没有找到办法。我可以使用以下方法获取所有联系人的别名:

<iq from='own_jid' to='own_jid' type='get'>
    <query xmlns='jabber:iq:roster'/>
</iq>

生成的服务器回复将包含给定用户的别名和JID。但是,我不能将自己添加到名册中,也没有找到任何其他方式来查询我自己的别名。

对此表示感谢,谢谢。

3 个答案:

答案 0 :(得分:1)

connection.getUser();

这将返回用户完整的jid

昵称

VCard vCard = new VCard(); 
vCard.load(mConnection); 
 String nickname=vCard.getNickName(); 

答案 1 :(得分:1)

本地客户端没有“名册联系人姓名”,也称为“处理”。我认为这就是你所说的“别名/昵称”。拥有一个是没有用的,因为无论如何它都不可见。

其他实体只能看到“XEP-172:用户昵称”样式昵称。

答案 2 :(得分:0)

使用AccountManager类检索自我用户的所有信息。

这些信息在注册时提供。

请参阅:http://www.igniterealtime.org/builds/smack/docs/3.3.1/javadoc/org/jivesoftware/smack/AccountManager.html#AccountManager(org.jivesoftware.smack.Connection)

即。检索自己的用户昵称

AccountManager ac = new AccountManager(连接);

String userNickName = ac.getAccountAttribute(&#34; name&#34;);

如果在新帐户注册时提供的信息

,您也可以获得以下属性

姓名,第一,最后,电子邮件等