使用咂嘴Android文件传输 [英] android file transfer using smack

查看:182
本文介绍了使用咂嘴Android文件传输的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作的聊天应用程序,我一直在使用嫌API来实现文件传输。
我能够连接到明火服务器,也可以与其它client.But我不知道如何实现transfer..I已经找到了code片段文件聊天,但使用also.Following我不是ableto发送是code片段我使用:

I am working on chatting application and i have to implement file transfer using smack api. I am able to Connect to the open fire server and can also chat with another client.But i dont know how to implement file transfer..I have found a code snippet but i am not ableto send it using that also.Following is the code snippet i am using:

public void SendFile(final String Receiver, final String Directory) {
        Thread thread = new Thread() {
            public void run() {
            ServiceDiscoveryManager sdm = ServiceDiscoveryManager
            .getInstanceFor(connection);
            if (sdm == null)
                sdm = new ServiceDiscoveryManager(connection);
            sdm.addFeature("http://jabber.org/protocol/disco#info");
            sdm.addFeature("jabber:iq:privacy");
            // Create the file transfer manager
            FileTransferManager manager = new FileTransferManager(
                    connection);
            FileTransferNegotiator
            .setServiceEnabled(connection, true);

            // Create the outgoing file transfer
            OutgoingFileTransfer transfer = manager
            .createOutgoingFileTransfer("alok@chd-akumar4" );
            Log.i("transfere file", "outgoingfiletransfere is created");
            try {
                OutgoingFileTransfer.setResponseTimeout(30000);
                transfer.sendFile(new File(Directory), "Description");
                Log.i("transfere file", "sending file");
                while (!transfer.isDone()) {
                    try {
                        Thread.sleep(1000);
                        Log.i("transfere file", "sending file status "
                                + transfer.getStatus() + "progress: "
                                + transfer.getProgress());
                        if (transfer.getStatus() == org.jivesoftware.smackx.filetransfer.FileTransfer.Status.error) {
                            transfer.cancel();
                            Log.e("","EEEEEERRRRRRRROOORRRRR");
                            break;
                        }
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        Log.e("aaaaaaaaaaaaaaa","aaaa"+e);
                        e.printStackTrace();
                    }
                }
            } 
            catch (XMPPException e) {
                // TODO Auto-generated catch block
                Log.e("aaaaaaaaaaaaaaa","aaaa"+e);
                e.printStackTrace();
            }
            Log.i("transfere file", "sending file done");
        }
        };
        thread.start();
    }

任何一个可以帮助我找到解决办法。

can any one help me finding the solution..

推荐答案

现在我们已经与4.1.0更新的API。

Now we have 4.1.0 with updated API's.

FileTransferRequest和StreamInitiation使得它现在更容易了。

FileTransferRequest and StreamInitiation makes it more easy now.

请检查与最新版本啪

<一个href=\"https://www.igniterealtime.org/builds/smack/docs/4.1.0/documentation/extensions/filetransfer.html\" rel=\"nofollow\">https://www.igniterealtime.org/builds/smack/docs/4.1.0/documentation/extensions/filetransfer.html

这篇关于使用咂嘴Android文件传输的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆