2012-07-26 4 views
1

파일 전송 지원이 필요한 채팅 응용 프로그램을 개발 중입니다. 이를 위해 Smack API를 사용하고 있습니다. 하지만 내 파일이 전송되지 않습니다 그리고 나는 File status Errorprogress 0.0
그물에 인터넷 검색 해봤지만 그들은 모두 동일한 방식으로 파일을 보내는 데 사용됩니다. 하지만 난 오류가 나타납니다.
이 문제와 관련하여 몇 가지 질문이 있지만 적절한 해결책은 제시되지 않았습니다.파일이 단발로 전송되지 않음 API

이렇게 생각하는 사람이 있습니까? 이 문제를 해결하는 방법?

편집 :

나는 10.0.2.2로 변경 127.0.0.1과 노력, 그리고 지금은 상태가 협상되지만 일부 시도 후 난 상태 오류를 가지고 있어요.

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", "--------"); 
      } 

어떤 도움과 제안을 이해할 수있을 것이다 :

여기에 파일 전송을위한 내 코드입니다.

감사

+0

어떤 문제가 있습니까? 같은 문제가 있습니다. – user1163234

+0

해결책을 찾지 못하면 아무 해결책도 없습니다. 감사합니다. – juned

+0

파일을 받고 유사한 문제가 발생하는 중입니다. 그걸 어떻게하는 지 아는가? – user1163234

답변

0

는 또한 동일한 문제가 발생하지만 한이 라인을

SmackConfiguration.setDefaultPacketReplyTimeout(15000); 

그 작업 벌금을 추가 한 후.

관련 문제