Android使用FtpServer开启FTP服务端

使用之前需要先下载jar包,可以在官网下载或者从下文附带的DEMO源码中拿
Android使用FtpServer开启FTP服务端_第1张图片

在AndroidManifest.xml中声明权限

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

编译后可能会出现如下错误
Android使用FtpServer开启FTP服务端_第2张图片
解决:在build.gradle文件中加如下代码

android {
    ...
    ...
    ...
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
    }
}

开启FTP服务端

private void startFtp() throws FtpException {
    FtpServerFactory serverFactory = new FtpServerFactory();

    //设置访问用户名和密码还有共享路径
    BaseUser baseUser = new BaseUser();
    baseUser.setName(user);
    baseUser.setPassword(password);
    baseUser.setHomeDirectory(rootPath);

    List authorities = new ArrayList();
    authorities.add(new WritePermission());
    baseUser.setAuthorities(authorities);
    serverFactory.getUserManager().save(baseUser);

    ListenerFactory factory = new ListenerFactory();
    factory.setPort(port); //设置端口号 非ROOT不可使用1024以下的端口
    serverFactory.addListener("default", factory.createListener());

    server = serverFactory.createServer();
    server.start();
}

关闭FTP服务端

server.stop();

FTP服务开启后就可以通过浏览器访问了
Android使用FtpServer开启FTP服务端_第3张图片
Android使用FtpServer开启FTP服务端_第4张图片

DEMO源码

你可能感兴趣的:(安卓)