Eu tenho um sistema no Android que tudo oque a pessoa fala na TV aparece o texto na tela do Android e agora eu quero colocar a função de baixar esse texto e esse arquivo txt fica em um ftp que é atualizado sempre, ate ok, oque eu não to conseguindo fazer é o download desse arquivo txt e depois salvar ele no sdcard oque eu tenho esta assim:
Bem depois de um tempo quebrando a cabeça está resolvido, vou deixar a solução aqui para futuras consultas
packageandroid.steno.tvtexto;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileOutputStream;importjava.io.FileReader;importorg.apache.commons.net.ftp.FTP;importorg.apache.commons.net.ftp.FTPClient;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Environment;importandroid.util.Log;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.TextView;publicclassTVTextoActivityextendsActivity{FTPClientftp=newFTPClient();/** Called when the activity is first created. */@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);ButtonbtnDownload=(Button)findViewById(R.id.btnDownload);finalTextViewview=(TextView)findViewById(R.id.textView1);finalEditTexteditText=(EditText)findViewById(R.id.editText1);btnDownload.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){// TODO Auto-generated method stubtry{//Recupera o caminho padrão do SDCARDFileroot=Environment.getExternalStorageDirectory();//Cria arquivo para gravar o textoFilefile=newFile(root,"/teste.txt");//Faz a conexão com o servidor ftpftp.connect("ftp");//Autenticação se necessarioftp.login("user","passwd");//Muda o diretorio dentro do ftpftp.changeWorkingDirectory("/appservers/apache-tomcat-6x/webapps");//Faz o download do arquivo passando o nome dele(dentro o servidor) e local onde ele vai ser guardadoftpDownload("teste.txt",file.getAbsolutePath()+"/"+file.getName());//Disconecta do ftpftp.disconnect();//Faço a leitura do do arquivo FileReaderfileReader=newFileReader(file);BufferedReaderleitor=newBufferedReader(fileReader);Stringlinha=null;//Loop para ler e inserir no editTextwhile((linha=leitor.readLine())!=null){editText.append(linha);}//Informo que o procedimento foi finalizadoview.setText("Finalizado");}catch(Exceptione){// TODO: handle exceptionLog.e("Log",e.getCause().toString());}}});}publicbooleanftpDownload(StringsrcFilePath,StringdesFilePath){booleanstatus=false;try{//Cria o outputStream para ser passado como parametroFileOutputStreamdesFileStream=newFileOutputStream(desFilePath);;//Tipo de arquivoftp.setFileType(FTP.BINARY_FILE_TYPE);//http://commons.apache.org/net/apidocs/org/apache/commons/net/ftp/FTPClient.html#enterLocalActiveMode()ftp.enterLocalPassiveMode();//Faz o download do arquivostatus=ftp.retrieveFile(srcFilePath,desFileStream);//Fecho o outputdesFileStream.close();returnstatus;}catch(Exceptione){Log.e("Log","download falhou");}returnstatus;}}
[]'s
P
paulofor
O detalhe do ftp.enterLocalPassiveMode(); foi fundamental, muito obrigado me ajudou muito aqui !!! Queria saber como descobriu isso.