【发布时间】: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();
}
-
我发现这个方法对 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 感谢和问候
【问题讨论】: