【问题标题】:asmack-android-8-4.0.5.jar createOutgoingFileTransfer need fullJID I can't get itasmack-android-8-4.0.5.jar createOutgoingFileTransfer 需要 fullJID 我无法获取
【发布时间】:2015-01-04 16:47:46
【问题描述】:

1.我读过https://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions /filetransfer.html 本指南的sn-p代码,不需要资源部分

// Create the file transfer manager
   FileTransferManager manager = new FileTransferManager(connection);
// Create the outgoing file transfer
   OutgoingFileTransfer transfer = manager.createOutgoingFileTransfer("romeo@montague.net");
// Send the file
   transfer.sendFile(new File("shakespeare_complete_works.txt"), "You won't believe this!");

2.所以我看了spark源码org.jivesoftware.spark.PresenceManager发现这个方法,所以文档很久没有更新了;

/**
 * Returns the fully qualified jid of a user.
 *
 * @param jid the users bare jid (ex. derek@jivesoftware.com)
 * @return the fully qualified jid of a user (ex. derek@jivesoftware.com --> derek@jivesoftware.com/spark)
 */
public static String getFullyQualifiedJID(String jid) {
System.out.println("getFullyQualifiedJID : " + jid);
    final Roster roster = SparkManager.getConnection().getRoster();
    Presence presence = roster.getPresence(jid);
    System.out.println("getFullyQualifiedJID : " + presence.getFrom());
    return presence.getFrom();
}
  1. 我发现这个方法对 asmack 不起作用,所以谷歌它发现了这个 Smack's FileTransferManager.createOutgoingFileTransfer only accepts full JIDs. How can I determine the full JID of a user in Smack?

    //我项目中的sn-p代码 名册名册 = connection.getRoster(); 列出出席名单 = roster.getPresences(jid); Log.d(TAG, "bareJid : " + jid); 对于(存在存在:presenceList){ Log.d(TAG, "fullJID : " + presence.getFrom()); }

为什么代码不能得到fullJID。 输出:

12-23 06:55:35.840: D/MChat(1805): bareJid: test@tigereye-pc 12-23 06:55:35.840: D/MChat(1805): fullJID: test@tigereye-pc

4.结果是一样的,怎么才能得到fullJID 感谢和问候

【问题讨论】:

    标签: smack asmack


    【解决方案1】:

    您必须提供完整的用户 ID 为:user@serveripaddress/Smack

    例如: xyz@192.168.1.1/Smack

    【讨论】:

      【解决方案2】:

      需要完整的JID和客户端资源。

      你可以这样做:

      String fullJID = xmppConnection.getRoster().getPresence(JID).getFrom();
      

      我的 JID 变量是没有资源的完整 JID。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-14
        • 1970-01-01
        • 2023-03-23
        • 2014-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多