Android - Wifi文件简单传输

WiFi文件传输应用 - 功能介绍

下载体验地址 - apk下载

📱 项目概述

WiFi文件传输是一款基于 Android 平台的本地文件传输应用。它可以在 Android 设备上启动一个轻量级 HTTP 服务器,让同一 WiFi 网络下的其他设备(手机、电脑、平板等)通过浏览器访问并上传/下载文件,无需安装任何客户端软件。

✨ 核心功能

1. HTTP 服务器管理

  • 自动启动服务器:应用启动后自动检测 WiFi 连接并启动服务器
  • 智能端口选择:默认使用 8080 端口,如被占用自动尝试其他端口
  • 服务器状态显示:实时显示服务器运行状态
  • 一键启动/停止:手动控制服务器的启动和停止

2. 文件上传功能

  • 多文件上传:支持同时选择多个文件进行上传
  • 拖拽上传:Web 界面支持拖拽文件到上传区域
  • 断点续传:上传中断后可以从中断位置继续上传,无需重新开始
  • 上传进度显示:实时显示上传进度条和百分比
  • 暂停/继续:支持暂停和继续上传操作
  • 文件大小限制:单文件最大支持 100MB

3. 文件下载功能

  • 一键下载:点击下载按钮即可下载文件
  • 断点续传:下载中断后支持断点续传
  • 文件信息显示:显示文件大小、修改时间等信息

4. 文件管理功能

  • 文件列表:显示所有已上传的文件
  • 文件预览
    • 图片文件:支持在线预览(jpg、jpeg、png、gif、webp)
    • 文本文件:支持在线预览(txt、json、xml、html、css、js、md、log)
  • 文件删除:支持删除单个文件或清空所有文件
  • 文件刷新:手动刷新文件列表

5. 访问地址分享

  • 二维码生成:自动生成包含访问地址的二维码
  • 地址复制:一键复制访问地址到剪贴板
  • 地址显示:清晰显示服务器访问地址(如:http://192.168.1.100:8080

6. 文件选择与管理

  • 本地文件选择:从 Android 设备选择文件添加到服务器
  • 存储目录管理:文件存储在 AFileTransferFiles 目录下
  • 打开存储目录:快速打开文件存储目录

🔧 技术特性

网络功能

  • 智能 IP 获取
    • 优先从 ConnectivityManager 获取 WiFi 网络 IP
    • 优先选择 10.x.x.x 和 192.168.x.x(真实 WiFi 常用网段)
    • 排除 172.17.x.x(容器/虚拟化网段)
    • 支持从物理网卡扫描获取 IP
  • 网络状态检测:自动检测 WiFi 连接状态
  • 多网络环境支持:支持 WiFi、热点、以太网等多种网络环境

权限管理

  • Android 版本适配
    • Android 6.0-9.0:读写存储权限
    • Android 10-12:读取存储权限
    • Android 13+:媒体权限(图片、视频、音频)
    • Android 11+:全部文件访问权限(MANAGE_EXTERNAL_STORAGE)
  • 权限引导:自动检测并引导用户授予必要权限

安全特性

  • 文件名安全处理:防止路径遍历攻击
  • 文件大小验证:防止上传超大文件
  • 文件类型检查:安全的文件类型识别

🎨 用户界面

Android 应用界面

  • 简洁设计:Material Design 风格
  • 状态显示:清晰的服务器状态和访问地址显示
  • 二维码展示:大尺寸二维码便于扫描
  • 操作按钮:启动/停止、复制地址、选择文件、打开目录等

Web 管理界面

  • 现代化 UI:清新的薄荷绿配色方案
  • 响应式设计:适配手机、平板、电脑等不同设备
  • 拖拽上传:直观的拖拽上传体验
  • 文件列表:卡片式文件列表展示
  • 预览模态窗口:图片和文本文件预览

📂 文件存储

  • 存储位置/sdcard/AFileTransferFiles/
  • 文件组织:所有文件统一存储在应用目录下
  • 临时文件:上传过程中使用 .tmp 临时文件,完成后重命名

🌐 API 接口

应用提供以下 RESTful API:

  • GET /api/info - 获取服务器信息
  • GET /api/files - 获取文件列表
  • POST /api/upload - 上传文件(支持断点续传)
  • GET /api/upload/status - 查询上传状态
  • GET /api/download - 下载文件(支持断点续传)
  • DELETE /api/delete - 删除文件
  • DELETE /api/files - 删除所有文件
  • GET /api/preview - 预览文件

📋 使用场景

  1. 手机与电脑文件互传:无需数据线,通过 WiFi 快速传输文件
  2. 多设备文件共享:在同一 WiFi 网络下,多台设备共享文件
  3. 文件备份:将手机文件快速备份到电脑
  4. 临时文件服务器:快速搭建一个简单的文件服务器
  5. 开发调试:开发过程中快速传输测试文件

🔍 技术架构

后端(Android)

  • 语言:Kotlin
  • HTTP 服务器:NanoHTTPD(轻量级 HTTP 服务器库)
  • 二维码生成:ZXing
  • 文件管理:Android File API
  • 网络管理:Android ConnectivityManager

前端(Web)

  • HTML5:现代 Web 标准
  • CSS3:响应式设计和动画效果
  • JavaScript:文件上传、下载、预览等功能
  • Fetch API:异步网络请求

核心模块

  1. MainActivity:主界面,管理服务器生命周期
  2. FileTransferServer:HTTP 服务器实现,处理所有请求
  3. NetworkUtils:网络工具类,获取 IP 地址和网络状态
  4. FileManager:文件管理工具,处理文件存储和操作
  5. QRCodeGenerator:二维码生成工具
  6. WebResourceHandler:Web 资源处理
  7. FilePreviewHandler:文件预览处理

📱 系统要求

  • 最低 Android 版本:Android 5.0 (API 21)
  • 目标 Android 版本:Android 14 (API 34)
  • 网络要求:WiFi 连接(或热点、以太网)
  • 存储权限:需要存储权限以保存文件

🚀 快速开始

  1. 安装应用:在 Android 设备上安装 APK
  2. 授予权限:首次启动时授予存储权限
  3. 连接 WiFi:确保设备连接到 WiFi 网络
  4. 启动服务器:应用会自动启动服务器(或手动点击启动)
  5. 访问 Web 界面:在其他设备浏览器中输入显示的地址
  6. 开始传输:通过 Web 界面上传或下载文件

💡 使用技巧

  1. 二维码扫描:使用其他设备扫描二维码快速访问
  2. 地址复制:复制访问地址发送给其他用户
  3. 断点续传:网络中断后重新上传/下载会自动续传
  4. 文件预览:图片和文本文件可以直接在浏览器中预览
  5. 批量操作:支持同时选择多个文件上传

⚠️ 注意事项

  1. 网络环境:确保所有设备在同一 WiFi 网络下
  2. 防火墙:某些防火墙可能阻止连接,需要允许访问
  3. 文件大小:单文件最大 100MB
  4. 服务器状态:关闭应用或停止服务器后无法访问
  5. 权限要求:Android 11+ 需要手动授予"所有文件访问权限"

🔄 更新日志

v1.0

  • 初始版本发布
  • 支持文件上传/下载
  • 支持断点续传
  • 支持文件预览
  • 支持二维码分享
  • 支持多文件上传
  • 适配 Android 5.0 - 14

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,686评论 2 59
  • 1.下拉刷新 Android-Ptr-Comparison-Android 下拉刷新开源库对比,非常nice!! ...
    码小趣阅读 9,720评论 3 131
  • 1.下拉刷新 Android-Ptr-Comparison-Android 下拉刷新开源库对比,非常nice!! ...
    passiontim阅读 3,040评论 0 48
  • """1.个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello ...
    她即我命阅读 4,128评论 0 6
  • 似乎最近一直都在路上,每次出来走的时候感受都会很不一样。 1、感恩一直遇到好心人,很幸运。在路上总是...
    时间里的花Lily阅读 1,622评论 1 3

友情链接更多精彩内容