Android 发送像WhatsApp这样的图片

Android 发送像WhatsApp这样的图片,android,chat,image-uploading,file-transfer,Android,Chat,Image Uploading,File Transfer,我提出了一个聊天申请。我想在我的应用程序中添加与WhatsApp相同的照片/文件共享概念。我已经使用Xmpp/Openfire制作了该应用程序,现在我正在使用该功能进行照片共享,但它并不完全可靠: public void sendFile(final String path, final String receiver) { Thread thread = new Thread() { public void run() {

我提出了一个聊天申请。我想在我的应用程序中添加与WhatsApp相同的照片/文件共享概念。我已经使用
Xmpp/Openfire
制作了该应用程序,现在我正在使用该功能进行照片共享,但它并不完全可靠:

public void sendFile(final String path, final String receiver) {

        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(receiver + "/Smack");

                System.out.println("Receiver of the file is "+receiver+"/smack");


                Log.i("transfere file", "outgoingfiletransfer is created");

                try {

                    OutgoingFileTransfer.setResponseTimeout(30000);
                    transfer.sendFile(new File(path), "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() == Status.error) {
                                Log.i("transfere file", "Errorrr isss: "
                                        + transfer.getError());
                                transfer.cancel();
                                break;
                            }
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }

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

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

    }
我想和WhatsApp或其他任何好方法一样做。请提出一个好的解决方案


谢谢

你能帮我确认一下它不可靠吗?你也检查过了吗?谢里夫的帖子很有用@BomberMan是的,我只使用sherif提供的链接。有时照片会传到接收器,有时则不会。根本不是reliable@BomberMan. 此外,当我使用sherif提供的此方法时,我会在登录时将其连接到连接。它不必要地发送多个存在数据包(6-7)。我的应用程序正在其他实例中处理这些数据包。与此同时,这给我带来了一个大问题。还有其他解决方案吗?@BomberMan关于XMPP,我还有一个问题。我可以通过两个步骤添加一个成员吗?即当一个人向另一个人发送请求时。它应该添加“允许”和“拒绝时拒绝”。目前,我正在管理它发送四组订阅/订阅数据包-非常恼人