Java 使用smack api的文件传输问题
我正在使用smack api和open fire xmmp服务器进行文件传输, 我做了发送文件的代码Java 使用smack api的文件传输问题,java,android,Java,Android,我正在使用smack api和open fire xmmp服务器进行文件传输, 我做了发送文件的代码 try { servicemanager = new ServiceDiscoveryManager(connection); manager = new FileTransferManager(connection); FileTransferNegotiator.setServiceEnabled(connection, true);
try {
servicemanager = new ServiceDiscoveryManager(connection);
manager = new FileTransferManager(connection);
FileTransferNegotiator.setServiceEnabled(connection, true);
OutgoingFileTransfer transfer = manager
.createOutgoingFileTransfer(receid);
System.out.println(connection);
transfer.sendFile(new File(comppath), "hi");
while (!transfer.isDone()) {
Toast.makeText(this,
"status." + transfer.getStatus().toString(),
Toast.LENGTH_LONG).show();
// System.out.println(transfer.getStreamID() + " is done!");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
Toast.makeText(this, "corrupted..", Toast.LENGTH_LONG)
.show();
// TODO Auto-generated catch block
e.printStackTrace();
}
}
在publicvoidoncreate(bundleicicle)
中,我为文件传输做了lisener
super.onCreate(icicle);
servicemanager = new ServiceDiscoveryManager(connection);
FileTransferNegotiator.setServiceEnabled(connection, true);
manager = new FileTransferManager(connection);
manager.addFileTransferListener(new FileTransferListener() {
public void fileTransferRequest(FileTransferRequest request) {
Log.d("", "allows file...");
if (request != null) {
// Accept it
IncomingFileTransfer transfer = request.accept();
try {
/*String pathsd = Environment
.getExternalStorageDirectory().toString();*/
String path = "/sdcard/"+ request.getFileName();
transfer.recieveFile(new File(path));
// transfer.recieveFile(new
// File(request.getFileName()));
// System.out.println("File " +
// request.getFileName() + "Received Successfully");
Log.d("", "rece: " + request.getFileName());
Log.d("", "path: " + request.getFileName());
// InputStream input = transfer.recieveFile();
} catch (XMPPException ex) {
Log.d("", "er: " + ex);
}
} else {
Log.d("", "reject file...");
request.reject();
}
}
});
在这里,lisener没有任何反应..在另一边
这是我的错
提前谢谢。我也遇到同样的问题,有人能帮我吗?…没有。。我用了其他方法,比如使用Apache tomcat存储和检索文件。@Kstar ohh好吧,那么它工作得完美吗?在android中使用Smack library和open fire Server进行文件传输时出现问题,在其他设备上接收到空文件,同时将文件从一个设备传输到另一个设备,其大小显示为0KB。当我打开它时,它显示空白屏幕。我不知道它背后的问题是什么,,,请帮助我。。。我正在使用此链接实施: