2010-10-07 20 views
0

Je me bats avec ce code:Comment envoyer des fichiers avec Smack?

FileTransferManager manager = new FileTransferManager(connection) 

OutgoingFileTransfer transfer = manager.createOutgoingFileTransfer("[email protected]/Smack"); 


try { 
    System.out.println("000"); 
    transfer.sendFile(new File("D:/cow.wav"), "Moo !"); 
    System.out.println("111"); 

    while(!transfer.isDone()) { 
    System.out.println(transfer.getProgress() + " is done!");  
    //System.out.println(transfer.getStreamID() + " is done!"); 

    try { 
     Thread.sleep(1000); 
    } 
    catch (InterruptedException e) { 
     // TODO Auto-generated catch block e.printStackTrace(); 
    } 
    } 
} 
catch (XMPPException e) { 
    // TODO Auto-generated catch block e.printStackTrace(); 
} 

Il coutures qu'il ne peut pas envoyer le fichier.

Quelqu'un peut-il m'aider à résoudre ce problème?

Répondre

2

Je crois que Gmail (à en juger par votre code ci-dessus) ne supporte pas le transfert de fichiers. Voir this. Vous pouvez également envoyer un disco#item et disco#info pour voir s'il prend en charge tout type de proxy de flux d'octets. Cependant, certains serveurs tels que jabber.org ne renvoie aucun disco#info sur les proxies. Pour obtenir des informations sur les services XMPP, reportez-vous à blog.

0

Vous n'avez pas entré l'identifiant complet du récepteur. Récupérer à l'aide

myRoster.getRoster().getPresence(entry).getFrom() 

Ensuite, effectuer le transfert et veiller à ce que recieiver est celui qui utilise XMPP et aussi ne pas utiliser Gtalk parce que son transfert de fichiers est différent de XMPP.

0

Nous avons découvert que SMACK a tendance à ajouter le spécificateur d'application "/ smack" après la connexion. Si vous utilisez les techniques ci-dessus, vous devriez voir cela se produire. Bizarrement cela n'affecte pas les messages mais affecte le transfert de fichiers