2

I am trying to transfer file in Multi user chat room using smack api + Openfire server. I am using the below code to transfer the file, but able to send the file:

public void SendFile(final String Receiver) {

    System.out.println("Receiver is:- "+Receiver);
    Thread thread = new Thread() {

        public void run() {
            ServiceDiscoveryManager sdm = ServiceDiscoveryManager
                    .getInstanceFor(mConnection);

            sdm.addFeature("http://jabber.org/protocol/disco#info");

            sdm.addFeature("jabber:iq:privacy");
            // Create the file transfer manager

            FileTransferManager manager = FileTransferManager.getInstanceFor(mConnection);

            FileTransferNegotiator fns = FileTransferNegotiator.getInstanceFor(mConnection);

            // Create the outgoing file transfer

            OutgoingFileTransfer transfer = manager
                    .createOutgoingFileTransfer(Receiver+"/Smack");
            Log.i("transfere file", "outgoingfiletransfere is created");

            // Send the file

            try {
                File myFile = new File("/storage/extSdCard/IMG-20161030-WA0071.jpg");

                if (myFile.exists()) {
                    System.out.println("File exist..");
                   // Toast.makeText(mApplicationContext, "File Exist---", Toast.LENGTH_SHORT).show();

                } else {
                    System.out.println("File does not exist..");
                   // Toast.makeText(mApplicationContext, "NOt Exist---", Toast.LENGTH_SHORT).show();
                }

                OutgoingFileTransfer.setResponseTimeout(30000);

                try {
                    transfer.sendFile(myFile, "Description");
                }catch (Exception e){
                    e.printStackTrace();
                }


                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() == FileTransfer.Status.error) {

                            transfer.cancel();

                            break;

                        }

                    } catch (InterruptedException e) {

                        // TODO Auto-generated catch block

                        e.printStackTrace();

                    }

                }

            } catch (Exception e) {

                // TODO Auto-generated catch block

                e.printStackTrace();

            }

            Log.i("transfere file", "sending file done");

        }

    };

    thread.start();

}

O/P: sending file status Errorprogress: 0.0

Please Help

mcemilg
  • 976
  • 1
  • 11
  • 18
tarun bhutani
  • 31
  • 1
  • 3

0 Answers0