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.