【问题标题】:Check if a user exist on server in XMPP with (a)smack使用 (a) smack 检查 XMPP 中的服务器上是否存在用户
【发布时间】:2012-12-21 23:16:47
【问题描述】:

我正在开发一个使用 asmack 作为库并在 android 平台上的聊天应用程序。 有没有什么方法可以在添加好友之前检查服务器上是否存在好友?

【问题讨论】:

    标签: xmpp smack asmack


    【解决方案1】:

    我找到了答案:

    UserSearchManager search = new UserSearchManager(mXMPPConnection);
    Form searchForm = search
        .getSearchForm("search." + mXMPPConnection.getServiceName());
    
    Form answerForm = searchForm.createAnswerForm();
    answerForm.setAnswer("Username", true);
    answerForm.setAnswer("search", user);
    ReportedData data = search
        .getSearchResults(answerForm, "search." + mXMPPConnection.getServiceName());
    
    if (data.getRows() != null) {
        for (ReportedData.Row row: data.getRows()) {
            for (String value: row.getValues("jid")) {
                Log.i("Iteartor values......", " " + value);
            }
        }
        Toast.makeText(_service, "Username Exists", Toast.LENGTH_SHORT).show();
    }
    

    如果 Server 没有任何具有该指定名称的输入,则 Itearator 它没有值并且代码不会进入 while(it.hasNext)..

    【讨论】:

    • 注意xmpp连接会话必须先授权。例如 - 如果您正在注册一个新帐户 - 您无法使用此方法检查用户名的可用性。
    • @nitin tyagi answerForm.setAnswer("用户名", true);在这种情况下, answerForm.setAnswer("search", user); 中的用户价值是什么?它是用户名或其他。
    • @MahiSingh 你知道用户是用户名还是 jabberid?
    • @FinnWea 是的,我知道这是 jabberid
    • 如果我没有帐户。我想创建一个并检查它的可用性,那么 /
    猜你喜欢
    • 2023-03-03
    • 1970-01-01
    • 2015-07-15
    • 2016-01-24
    • 2011-05-27
    • 2019-04-16
    • 1970-01-01
    • 2012-12-28
    • 2016-11-05
    相关资源
    最近更新 更多