Conexão FTP via Android

Estou tentando reunir informações para montar uma biblioteca de acesso ( leitura,gravacao e exclusao ) a um FTP via android, utilizando o android studio. reuni algumas informações, estou utilizando a biblioteca do apache org.apache.commons.net.ftp.FTPFile, porem ao seguir os exemplos antigos que encontrei, sempre ao tentar conectar (antes mesmo do usuario e senha ) na linha mFtp.connect(Host); aciona a exception networkonmainthreadexception.

Alguem possui alguma sugestão ou algum exemplo funcional?

obrigado!

Da uma olhada neste link, nele tem uma possível solução para seu problema!

1 curtida

Obrigado, no caso seria que o app nao teria permissao para acessar a internet?
fiz a modificação, mas infelizmente ainda nao deu!

URL url = new URL(urlToRssFeed);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader xmlreader = parser.getXMLReader();
RssHandler theRSSHandler = new RssHandler();
xmlreader.setContentHandler(theRSSHandler);
InputSource is = new InputSource(url.openStream());
xmlreader.parse(is);
return theRSSHandler.getFeed();
And it shows the below error:

android.os.NetworkOnMainThreadException

Bom dia Will,

Isso provavelmente acontece pois você está tentando acessar o FTP pela thread principal. Tente criar uma nova thread que vai dar certo.

ProgressDialog dialog;

private void novaThread(){
	dialog = ProgressDialog.show(this, "Titulo", "Mensagem",false,true);
	dialog.setCancelable(false);
	new Thread(){
		@Override
		public void run(){
			try{
				conectaFTP();
			}catch (Exception e){}
		}
	}.start();
}

private void conectaFTP(){
	/*Código de acesso ao FTP*/       

	finalizaConexao();
}

private void finalizaConexao(){
        runOnUiThread(new Runnable(){
            @Override
            public void run(){
				if(dialog != null) {
                    dialog.dismiss();
                }
			
				Toast.makeText(getContext(),"Mensagem",Toast.LENGTH_LONG).show();
			
		}
	});
}

private Context getContext(){
        return this;
    }
1 curtida

obrigado!
realmente é isso!
peguei um exemplo “funcional” mas estava sem as threds!
ainda estou penando com as funcoes, mas a exception foi resolvida com isso!!!
Obrigado!

Bacana! Qualquer dúvida estamos ai.

Att.