RCV (0): <iq id="dnkUY-33" to="reza@reza-hp/Smack" from="admin@reza-hp/Spark 2.6.3"
type="set">
<si xmlns="http://jabber.org/protocol/si" id="jsi_5267323957851897853"
mime-type="image/jpeg" profile="http://jabber.org/protocol/si/profile/file-
transfer">
<file xmlns="http://jabber.org/protocol/si/profile/file-transfer"
name="635px-Food.jpg" size="45135">
<desc>Sending file</desc>
</file><feature
xmlns="http://jabber.org/protocol/feature-neg"><x xmlns="jabber:x:data" type="form">
<field var="stream-method" type="list-single">
<option><value>http://jabber.org/protocol/bytestreams</value></option><option>
<value>http://jabber.org/protocol/ibb</value></option></field></x></feature>
</si></iq>
这是错误Printed:
07-01 13:40:49.075: W/System.err(1986): java.lang.NullPointerException
07-01 13:40:49.075: W/System.err(1986):
atorg.jivesoftware.smackx.filetransfer.
IncomingFileTransfer.negotiateStream(IncomingFileTransfer.java:173)
07-01 13:40:49.075: W/System.err(1986): at
org.jivesoftware.smackx.filetransfer.
IncomingFileTransfer.access$100(IncomingFileTransfer.java:45)
07-01 13:40:49.075: W/System.err(1986): at
org.jivesoftware.smackx.filetransfer.
IncomingFileTransfer$1.run(IncomingFileTransfer.java:122)
07-01 13:40:49.085: W/System.err(1986): at java.lang.Thread.run(Thread.java:841)
异常为空,但根据提供的IQ,似乎传输类型是“流启动”,所以我认为asmack默认情况下不会发现它,是否有任何解决方案,或知道如何发现“流启动”?非常感谢#3 哦,我正在使用OpenFire服务器:)
答案 0 :(得分:0)
OOOkkk,刚刚找到解决方案,我对这个问题是正确的,对于aSmack的弱IT,对不起,只需添加这个字段:
ServiceDiscoveryManager.getInstanceFor(connection).addFeature("jabber.org/protocol
/si");
所以你的aSmack支持StreamInitiation ....我相信这解决了很多问题
还可以在连接后添加文件传输提供程序,这有所不同。并且我的意思是,当你确定他们已经连接已经连接时,如果&#34;尝试&#34;
并且最重要的部分:肯定使用Asmack 8-4.0.0 rc-1,最适合文件传输的任何问题,我很乐意帮忙,经过1周的尝试,我想我学到了很多东西。感谢