Невозможно получить файл, используя asmack и xmpp

Я работаю над совместным использованием файлов, используя asmack и xmpp. Я могу отправить файл, но не могу получить файл на другом устройстве. Я так много занимался исследованиями и разработками, нашел так много способов, попробовал их все, но не добился успеха. Кажется, я делаю небольшую ошибку, много пробовал, но у меня нет решения моей проблемы. Код, который я использовал для отправки файла:

d.findViewById(R.id.btnsendphoto).setOnClickListener(
                    new OnClickListener() {

                        @Override
                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            if (!filepath.equals("")) {

                                configureProviderManager(connection);
                                FileTransferNegotiator.IBB_ONLY = true;
                                FileTransferNegotiator.setServiceEnabled(
                                        connection, true);
                                mFileTransferManager = new FileTransferManager(
                                        connection);

                                String to = connection.getRoster()
                                        .getPresence("cac6ba9dc9c6ac67@pc")
                                        .getFrom();
                                final OutgoingFileTransfer transfer = mFileTransferManager
                                        .createOutgoingFileTransfer(to);
                                File file = new File(filepath);

                                try {
                                    configureProviderManager(connection);
                                    transfer.sendFile(file, "test_file");
                                } catch (XMPPException e) {
                                    e.printStackTrace();
                                }
                                new AsyncTask<Void, Void, Void>() {

                                    protected void onPreExecute() {

                                    }

                                    @Override
                                    protected Void doInBackground(
                                            Void... params) {
                                        while (!transfer.isDone()) {
                                            if (transfer.getStatus().equals(
                                                    "Error")) {
                                                Log.d("file transfer",
                                                        "ERROR!!! "
                                                                + transfer
                                                                        .getError());

                                            } else if (transfer.getStatus()
                                                    .equals("Cancelled")
                                                    || transfer.getStatus()
                                                            .equals("Refused")) {
                                                Log.d("file transfer",
                                                        "Cancelled!!! "
                                                                + transfer
                                                                        .getError());
                                            }
                                            try {
                                                Thread.sleep(1000L);
                                            } catch (InterruptedException e) {
                                                e.printStackTrace();
                                            }
                                        }
                                        return null;
                                    };

                                    protected void onPostExecute(Void result) {

                                        if (transfer.getStatus().equals(
                                                "Refused")
                                                || transfer.getStatus().equals(
                                                        "Error")
                                                || transfer.getStatus().equals(
                                                        "Cancelled")) {
                                            Log.i("file transfer",
                                                    "refused cancelled error "
                                                            + transfer
                                                                    .getError());

                                        } else {

                                            Log.i("file transfer", "Success: "
                                                    + transfer.getFileName());
                                            messages.add("file sent");

                                            setListAdapter();
                                        }
                                    };
                                }.execute();

                            }
                            d.dismiss();
                        }
                    });

Я могу отправить файл. Я получил это сообщениефайл отправлен на отправляющей стороне, здесьconfigureProviderManager являетсяэтот и я пробовал много способов, которые я получил на Google, но я хотел бы упомянуть один из тех, кто здесь

во-первых:
public void ReceiveFile() {
    System.out.println("in ReceiveFile");
    Thread thread = new Thread() {
        public void run() {
            System.out.println("in Thread");
            configureProviderManager(connection);
            // Create the file transfer manager
            final FileTransferManager managerListner = new FileTransferManager(
                    connection);

            FileTransferNegotiator.setServiceEnabled(connection, true);

            Log.i("File transfere manager", "created");

            // Create the listener
            managerListner
                    .addFileTransferListener(new FileTransferListener() {
                        public void fileTransferRequest(
                                final FileTransferRequest request) {

                            Log.i("Recieve File",
                                    "new file transfere request");

                            Log.i("file request",
 ,                                   "from" + request.getRequestor());

                            IncomingFileTransfer transfer = request
                                    .accept();

                            Log.i("Recieve File alert dialog", "accepted");
                            try {

                                transfer.recieveFile(new File("/sdcard/"
                                        + request.getFileName()));

                                while (!transfer.isDone()
                                        || (transfer.getProgress() < 1)) {

                                    Thread.sleep(1000);
                                    Log.i("Recieve File alert dialog",
                                            "still receiving : "
                                                    + (transfer
                                                            .getProgress())
                                                    + " status "
                                                    + transfer.getStatus());

                                    if (transfer.getStatus().equals(
                                            Status.error)) {
                                        // Log.i("Error file",
                                        // transfer.getError().getMessage());
                                        Log.i("Recieve File alert dialog",
                                                "cancelling still receiving : "
                                                        + (transfer
                                                                .getProgress())
                                                        + " status "
                                                        + transfer
                                                                .getStatus());
                                        transfer.cancel();

                                        break;
                                    }

                                }

                            } catch (XMPPException e) {

                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } catch (InterruptedException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                    });

        }
    };
    thread.start();
}

Отладка этого кода Я даже не получаю этот журналзапрос на передачу нового файла, Пожалуйста, расскажите, какую ошибку я делаю и как я могу это исправить. Заранее спасибо.

Ответы на вопрос(0)

Ваш ответ на вопрос