从Android应用程序访问FTP服务器

时间:2012-11-09 18:35:00

标签: android ftp android-permissions

我无法从“android app”访问“PC中的ftp服务器”下载文件,我使用无线连接。

public void FTP_Download(){

            String server = "192.168.1.135";
            int port = 21;
            String user = "pc1";
            String pass = "1551";

            FTPClient ftpClient = new FTPClient();

            try {

                ftpClient.connect(server, port);
                ftpClient.login(user, pass);
                ftpClient.enterLocalPassiveMode();
                ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
                Toast.makeText(getBaseContext(), "download starting.",Toast.LENGTH_LONG).show();
                // APPROACH #1: using retrieveFile(String, OutputStream)
                String remoteFile1 = "i.xml";
                File downloadFile1 = new File("sdcard/i.xml");

                OutputStream outputStream1 = new BufferedOutputStream(new FileOutputStream(downloadFile1));
                boolean success = ftpClient.retrieveFile(remoteFile1, outputStream1);
                outputStream1.close();

                if (success) {
                    Toast.makeText(getBaseContext(), "File #1 has been downloaded successfully.",Toast.LENGTH_LONG).show();
                }

            } catch (IOException ex) {
                System.out.println("Error: " + ex.getMessage());
                ex.printStackTrace();
            } finally {
                try {
                    if (ftpClient.isConnected()) {
                        ftpClient.logout();
                        ftpClient.disconnect();
                    }
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }





}

我添加了互联网许可:

<uses-permission android:name="android.permission.INTERNET"/>

注意:我在PC上的模拟器中测试了应用程序,所有的东西都没问题。

当我尝试从默认浏览器访问FTP时,我不能,但我可以从firefox。

任何帮助,请

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。如果它在模拟器上工作而不在设备上工作,那么可能存在防火墙,或者您的网络不允许连接,因为由于某种原因它不够安全。另外,请确保您的FTP服务器允许使用您的用户名和密码进行连接。