|
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
|
Herramientas |
#1
|
||||
|
||||
no conecta a servidor FTP
Buenas Tardes, estoy realizando un proyecto, para enviar un fichero via ftp a una camara que tiene el puerto ftp 21 abierto. Desde un movil y con un cliente ftp, acceso sin problemas con la camara a sus carpetas, el problema esta que al realizar un programa para realizar el proyecto, no me conecta y he intentado de todo.
voy a poner algunos datos para que los que puedan ayudarme tengo todos los datos. Lo estoy realizando en Android Studio. en AndroidManifest.xml tengo android:name="android.permission.INTERNET" /> ya en la clase tengo import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; y al ejecutar ftpClient = new FTPClient(); ftpClient.connect("192.168.42.1",21); no hace el .connect SOLUCIONADO: if (Build.VERSION.SDK_INT>9); { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().buil d(); StrictMode.setThreadPolicy(policy); } Última edición por JOERCHA Día 09/02/16 a las 00:42:01. |
|
#2
|
||||
|
||||
El permiso de escritura en medios externos no tiene que ver nada con FTP, en todo caso es
android.permission.INTERNET
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
#3
|
||||
|
||||
|
#4
|
||||
|
||||
¿Y qué excepción te lanza al ejecutar el connect?
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
#6
|
||||
|
||||
SOLUCIONADO:
Antes de hacer el connect hay que comprobar esto. if (Build.VERSION.SDK_INT>9); { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().buil d(); StrictMode.setThreadPolicy(policy); } |
#7
|
||||
|
||||
No, esa no es la solución.
La solución está en la parte del código que no muestras, y es que seguro que estás haciendo el connect en el hilo principal, y al hacer un permitAll al StrictMode evitas que salte el NetworkOnMainThreadException. ¿Funciona lo que has hecho? Si, pero es de nivel chapucero no, lo siguiente. |
#8
|
||||
|
||||
Como dice kriogeN esa no es la solución, el tiempo que estés usando la conexión al FTP dejarás el móvil completamente bloqueado y sin que responda a los toques del usuario. Ya te encontrarás con eso más adelante.
La solución es que el código que se conecta y transfiera datos lo haga en un hilo independiente, ya sea con una AsyncTask o con un nuevo Thread.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
Estás aquí | ||||||
|