Die Datei wird in der Smack-API nicht übertragen

Ich entwickle eine Chat-Anwendung, in der ich die Dateiübertragung unterstützen muss. Dafür benutze ich Smack API. Aber meine Datei wird nicht übertragen und ich erhalte dieFile status Error undprogress 0.0
Ich habe im Internet gegoogelt, aber sie werden alle auf die gleiche Weise zum Senden der Datei verwendet. aber ich erhalte den Fehler.
Ich weiß, es gibt ein paar Fragen zu diesem Thema, aber es gibt keine richtige Lösung.

Gibt es jemanden, der eine Ahnung davon hat? Wie kann man dieses Problem lösen?

Bearbeiten:

Ich habe versucht das mit zu ändern127.0.0.1 zu10.0.2.2, und jetzt habe ich den Status Verhandeln, aber nach einigen Versuchen habe ich den Status Fehler.

Hier ist mein Code für die Dateiübertragung:

ServiceDiscoveryManager sdm = ServiceDiscoveryManager
                        .getInstanceFor(connection);
                if (sdm == null)
                    sdm = new ServiceDiscoveryManager(connection);
                sdm.addFeature("http://jabber.org/protocol/disco#info");
                sdm.addFeature("http://jabber.org/protocol/disco#item");
                sdm.addFeature("jabber:iq:privacy");
                Log.i("send file", "send file");
                FileTransferManager manager = new FileTransferManager(
                        connection);
                FileTransferNegotiator.setServiceEnabled(
                        connection, true);
                OutgoingFileTransfer transfer = manager
                        .createOutgoingFileTransfer("[email protected]/Smack");
                Log.i("transfer file",
                        "outgoingfiletransfer is created");
                try {
                    OutgoingFileTransfer.setResponseTimeout(30000);
                    transfer.sendFile(
                            new File(path_file+"/"+"andr.jpeg"),
                            "Description");
                    Log.i("transfer file", "sending file");

                    Log.i("transfer file","the path is :"+path_file+"/"+"andr.jpeg");
                    while (!transfer.isDone()) {
                        try {
                            Thread.sleep(1000);
                            Log.i("transfer file",
                                    "sending file status :- "
                                            + transfer.getStatus()
                                            + " "
                                            + "progress:-"
                                            + transfer
                                                    .getProgress());
                            if (transfer.getStatus() == org.jivesoftware.smackx.filetransfer.FileTransfer.Status.error) {
                                transfer.cancel();
                                Log.e("", "ERROR");
                                break;
                            }
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            Log.e("catch", "catch" + e);
                            e.printStackTrace();
                        }
                    }
                } catch (XMPPException e) {
                    // TODO Auto-generated catch block
                    Log.e("catch", "catch" + e);
                    e.printStackTrace();
                }
                Log.i("transfer file", "--------");
            }

Jede Hilfe und Anregung wird geschätzt.

Vielen Dank

Antworten auf die Frage(1)

Ihre Antwort auf die Frage