在asmack中创建具有更多属性的新用户

时间:2014-12-25 00:28:34

标签: smack asmack

我正在尝试创建具有更多属性的新用户,但它无法正常工作。我在asmack中使用此代码:

ConnectionConfiguration config = new ConnectionConfiguration("SERVER IP", 5222,"localhost");
config.setSecurityMode(SecurityMode.disabled);
XMPPConnection conn2 = new XMPPTCPConnection(config);
conn2.connect();
AccountManager manager =AccountManager.getInstance(conn2);
Map<String, String> attributes = new HashMap<String, String>();
attributes.put("username", "my_user_name");
attributes.put("password", "my_password");
attributes.put("email", "foo@foo.com");
attributes.put("name", "my_full_name");
manager.createAccount("my_user_name", "my_password", attributes);
conn2.login("my_user_name", "my_password");
ChatManager chatmanager = ChatManager.getInstanceFor(conn2);
Log.w("User Name:",""+manager.getAccountAttribute("name"));

但是当我尝试使用getAccountAttribute进行登录时,除了用户名和密码外,所有字段都返回null。

如何在asmack中设置姓名,电子邮件等字段?

1 个答案:

答案 0 :(得分:1)

你可以用VCard来实现这一点。

  1. 保存VCard:

    VCard vCard = new VCard();
    vCard.setFirstName("foo");
    vCard.setEmailHome("foo@foo.com");
    vCard.save(conn2);
    
  2. 加载VCard:

    VCard vCard = new VCard();
    vCard.load(conn2);
    String name = vCard.getFirstName();
    
  3. 注意:您必须先登录才能保存VCard。