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.