Skip to content

文件快传是基于NanoHTTPD搭建的安卓服务器,基于Retrofit和okHttp处理HTTP请求响应的安卓客户端。这个是自定义文件传输软件系统的一部分---安卓端服务器和客户端,可以在局域网内基于HTTP协议,实现电脑,安卓,网页浏览器三端数据互通,其他关联项目具体看README

Notifications You must be signed in to change notification settings

bunny-chz/FileTransferAndroid

Repository files navigation

FileTransferAndroid

文件快传是基于NanoHTTPD搭建的安卓服务器,基于Retrofit和okHttp处理HTTP请求响应的安卓客户端。

抖音视频演示:

https://v.douyin.com/rbRMCXE/


这个是自定义文件传输软件系统的一部分---安卓端服务器和客户端,

可以在局域网内基于HTTP协议,实现电脑,安卓,网页浏览器三端数据互通

电脑客户端请看这里(用到了QNetworkAccessManager类进行GET,POST请求)

https://github.com/bunny-chz/FileTransferWindowsClient

电脑服务器端请看这里(用到了QtWebApp)

https://github.com/bunny-chz/FileTransferWindowsServer


开发环境

Android Studio

API > 21

安卓5.0以上

用到的依赖

本软件用到Retrofit,处理HTTP的请求和响应

https://github.com/square/retrofit

用到了NanoHTTPD,搭建轻量级安卓服务器

https://github.com/NanoHttpd/nanohttpd

本人感觉很好的安卓HTTP网络编程教程,强烈推荐给要学习Retrofit和OKHttp的同学,,希望能帮到你学习安卓,宝藏博主的B站--->

https://www.bilibili.com/video/BV1ua4y1J7VV

关于界面网址

https://github.com/medyo/android-about-page

扫码解码

https://github.com/jenly1314/ZXingLite

新拟物化设计界面风格网址(Public archive)

https://github.com/sshadkany/Android_neumorphic

本项目中NanoHTTPD搭建的服务器,客户端上传的文件,缓存在缓存目录中,需要声明读写权限,否则客户端上传文件时会出错


使用HTTP,不使用HTTPS,要在在AndroidManifest.xml的application中声明

android:usesCleartextTraffic="true"

其中安卓10,需要在AndroidManifest.xml的application中声明

android:requestLegacyExternalStorage="true"

安卓11及以上,需要在AndroidManifest.xml中声明

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

且需要进行页面跳转给予管理全部文件的权限,

boolean highPermission = Environment.isExternalStorageManager();
if (!highPermission) {
    Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
    intent.setData(Uri.fromParts("package", this.getPackageName(), null));
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    this.startActivity(intent);
}

本项目很多操作用了文件读写方法,来实现功能。具体实现请看代码。

自定义的服务器接口

说明:下面的IP和Port为设备所属网络环境的IP和端口,只支持HTTP

textCtoS 即是 text from Client to Server(从客户端发送文本到服务器)的缩写,其他以此类推

http://IP:Port/ 网页端主页,客户端GET获取到一个网页

http://IP:Port/testLink 客户端GET请求,连接测试

http://IP:Port/textCtoSPage 客户端GET,获取到一个发送文本给服务器的操作网页

http://IP:Port/textCtoS 链接中带参数,客户端POST请求后,会给服务器发送文本信息,键值为"text=???"

http://IP:Port/textStoC 客户端GET获取到服务器发送的信息

http://IP:Port/textStoCWeb 网页端GET获取到服务器发送的信息

http://IP:Port/fileCtoS 客户端POST请求后,会给服务器发送文件,POST请求内容标记为"file"

http://IP:Port/fileCtoSPage 网页端GET获取到一个发送文件给服务器的操作网页

http://IP:Port/fileStoCWeb 网页端GET服务器发送的文件

http://IP:Port/fileStoC 客户端GET服务器发送的文件

界面预览


主界面

Screenshot_2022-10-23-15-35-17-44_45da8379b8d5050e61946b694b18ea47


服务器界面

Screenshot_2022-10-23-15-35-20-42_45da8379b8d5050e61946b694b18ea47


客户端界面

Screenshot_2022-10-23-15-35-27-46_45da8379b8d5050e61946b694b18ea47

About

文件快传是基于NanoHTTPD搭建的安卓服务器,基于Retrofit和okHttp处理HTTP请求响应的安卓客户端。这个是自定义文件传输软件系统的一部分---安卓端服务器和客户端,可以在局域网内基于HTTP协议,实现电脑,安卓,网页浏览器三端数据互通,其他关联项目具体看README

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages