Ostatnio zauważyłem, że podczas próby uruchomienia aplikacji na emulacji Gingerbread, FTP się zepsuł. Obecnie używam zewnętrznej biblioteki Apache Commons wsparcia FTP, ale z jakiegoś powodu nie działa na każdej innej Android OS z wyjątkiem 2.3 (Gingerbread)Nie można połączyć się z serwerem FTP na Gingerbread
Oto mój kod FTP
FTPClient ftp = new FTPClient();
ftp.connect(SERVER);
ftp.login("anonymous", "anonymous");
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
InputStream is = ftp.retrieveFileStream("file.txt");
byte[] data = new byte[1024];
fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
int x = 0;
while((x=is.read(data,0,1024))>=0){
fos.write(data,0,x);
}
fos.flush();
fos.close();
ftp.logout();
ftp.disconnect();
Jak powiedziałem, to jest testowany i działa w wersjach 1.6, 2.1 i 2.2, ale nie 2.3. Próbowałem cały dzień, aby dowiedzieć się, dlaczego i jak to naprawić, ale nie mogę znaleźć żadnego rozwiązania.
Zastanawiam się więc, czy ktokolwiek ma doświadczenie z FTP i Gingerbread i czy może być tak miło poprowadzić mnie we właściwym kierunku.
Dzięki.
Czy poprzedza uwierzytelnianie? Czy są zgłaszane wyjątki? – Brian
Twój kod działa poprawnie dla mnie z emulatorem poziomu API systemu Android 2.3.1 i plikiem commons-net-2.0.jar. Być może masz starszą wersję? Użyłem strony FTP www.mirrorservice.org i pliku /pub/gnu/r.README – NickT
Co się nie udaje? czy masz stacktrace? nie zbudować lub nie uruchomić? –