Skip to content
styismePublic

About

The watch-exclusive branch of OldSend. Fully compatible with LocalSend, redesigned for Wear OS. | OldSend 的手表专属版,完整兼容 LocalSend,专为 Wear OS 深度定制。

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

简体中文 | 繁體中文 | English | 日本語 | 한국어 | Deutsch | Français | Español | Русский | Português

WatchSend

OldSend 的手表进化版。保留全部硬核传输能力,将 UI 彻底重塑为 Wear OS 原生的“3D 滚轮”与“药丸卡片”形态,为小屏幕与圆表盘而生。

Build Android APK Version License: MIT Made with AI Platform


⚠️ AI 生成声明

本项目由 AI 辅助生成。

遵循 AI 开发规范,在此明确披露:

  • AI 深度参与部分:手表专属的 3D 滚轮算法、预测性返回动画、纯 Java 动态渲染的药丸卡片布局、硬件适配逻辑、Shizuku 纯手写 Binder 代理、物理级 UI 缩放重构以及完整的 CI/CD 流水线。
  • 开发者负责部分:需求定义、真机测试(手表/手机)、功能验收、Bug 定位与最终发布决策。所有 AI 生成的代码均经过人工审阅与真机调优。

关于 AI 参与的详细范围与比例,请务必查阅 docs/AI_DISCLOSURE.md。


📦 版本与溯源

当前版本:v1.4.0。

本项目是 OldSend 的 Watch Edition(手表版)。OldSend 的协议栈、HTTP 服务、组播发现、跨网传输等核心业务逻辑均被完整继承,UI 层与包名(org.watchsend)进行了彻底重构。

完整版本历史请见 CHANGELOG.md。


✨ 核心特性

⌚ 深度手表硬件适配

  • 表冠滑动支持 (Rotary Input):完美适配 Wear OS 3+ 的旋转表冠,拨动表冠即可丝滑滚动列表,告别手指遮挡。
  • 全局触觉反馈 (Haptic):点击、传输成功、失败均有精细的震动反馈,无需时刻盯着屏幕确认状态。
  • 传输屏幕常亮:文件传输期间强制屏幕常亮,传输结束自动恢复省电逻辑。
  • 快捷磁贴 (Tiles):支持下拉快捷面板一键唤起 WatchSend,适配 Android 7.0+(老设备自动降级忽略)。
  • 低性能模式:一键关闭 3D 滚轮、预测性返回等复杂动画,保障老旧设备流畅度。
  • 息屏微光模式:传输时息屏仅保留进度条,抬腕亮屏恢复。
  • 语音输入:支持系统语音转文字输入。

🛠️ 极客专属工具箱

  • 静默安装 (Beta):支持通过 Root 或 Shizuku 权限,在接收 APK 后实现无感后台安装(纯手写 Binder IPC 代理)。
  • 原生 ZIP 解压:收到压缩包无需导出,在接收完成页或历史记录长按,直接调用纯 Java 引擎安全解压(内置防路径穿越漏洞)。
  • 网页端 10 语种自适应:内置 WebShare 前端已全面支持 10 国语言,自动识别浏览器语言,支持拖拽上传与剪贴板同步。
  • 历史快捷管理:长按接收记录可快速分享文件或删除记录,ZIP 文件自动显示 📦 标识。
  • Debug Keys 模式:设置中可选的语言选项,切换后全界面直接显示底层词条 Key,极客查缺补漏神器。

🎨 极致的 Wear OS UI 交互

  • 物理级 UI 缩放:重构底层 Context,内置滑动条,可在 0.3x ~ 2.5x 之间实时调整整个 App 的字体与控件大小,完美绕过 Android 11+ 系统限制。
  • 深色模式三态切换:支持「跟随系统 / 强制浅色 / 强制深色」模式,完美适配系统日夜切换。
  • 动态取色 (Material You):升级系统主题配置,成功解锁 Android 12+ 的动态取色,随壁纸/表盘变色。
  • 3D 滚轮特效:上下滑动时,边缘卡片自动缩小并降低透明度,还原原生物理滚轮感。
  • 圆屏沉浸优化:一键开启后,界面自动向内收缩,避免文字与按钮被圆形表盘切割。
  • 跟手滑动返回 & 预测性返回:支持全局滑动退出,卡片缩小浮起,模拟系统级 Predictive Back 动画。
  • 全量 10 种语言变体:完美适配中、繁、英、日、韩、德、法、西、俄、葡,无死角覆盖。

🌐 跨网传输与穿透 (继承自 OldSend)

  • 6 位一次性密码:无需公网 IP,跨广域网传文件。
  • 公网 P2P 直连:支持 FRP/Ngrok/ZeroTier 等内网穿透。
  • UPnP / STUN / IPv6:自动端口映射、NAT 探测与原生 IPv6 直连。

🔄 协议互通与安全

  • 完美兼容:完整兼容 LocalSend v1/v2.2 协议。
  • 极低兼容:最低支持 Android 2.3 (API 10)。
  • 白/黑名单与后缀拦截:长按设备即可拉黑,自定义危险后缀(exe/bat 等)自动拦截。

📱 快速上手

1. 手表端接收与发送

打开 App,确保与对方处于同一 Wi-Fi 或已配置好跨网通道。点击“启动”后,列表会自动发现设备,点击设备即可发送文件。

2. 网页端传文件

在电脑浏览器输入 App 首页显示的局域网 IP 及端口(如 http://192.168.1.100:53317),即可打开极简网页端。支持拖拽上传、多文件并发进度条、手机剪贴板同步。主界面点击 IP 可快速复制链接。

3. 跨网传输

  • 密码模式:发送端生成 6 位密码,接收端输入密码即可连接。
  • 直连模式:双方配置好公网 IP/UPnP 后,输入 [IP]:53317 极速直连。

🛠️ 自行编译与自动发版

与 OldSend 保持一致,本项目使用 AGP 3.6.3 + Gradle 5.6.4 + JDK 8 的古早工具链,以维持对 minSdkVersion 10 的支持(compileSdk 与 targetSdk 已提升至 30 以适配现代规范)。

🤖 全自动 CI/CD 流水线

项目现已接入全自动的 GitHub Actions 发版流水线:

  1. 你只需要修改 CHANGELOG.md 顶部的版本号并 Push。
  2. CI 会自动提取版本号,注入到 build.gradle 和 App 的“关于”页面。
  3. 自动解密签名文件、编译出 Release APK。
  4. 自动打 Git Tag,并发布到 GitHub Release 页面供下载。

(注:维护者需在仓库 Secrets 中配置 NAS_KEYSTORE_BASE64 等签名参数)


🚧 架构局限性与风险提示(极度重要)

  1. 极客实验性质:跨网功能依赖第三方公共设施(ntfy.sh)或用户的公网配置,稳定性不保证;Shizuku 静默安装受限于不同 ROM 的限制,部分设备可能被拦截降级。
  2. 硬件代沟:部分老旧设备不具备震动马达或旋转表冠;快捷磁贴仅支持 Android 7.0+,系统会自动忽略不支持的组件。
  3. TLS 代沟:Android 2.3 原生仅支持 TLS 1.0,开启 HTTPS 会导致旧设备握手失败。
  4. 手表算力瓶颈:3D 滚轮特效与预测性返回动画对 GPU 有一定要求,极低端手表请务必开启“低性能模式”。

总结:WatchSend 适合极客折腾、手表文件互传或怀旧场景。日常跨平台传输,建议使用官方原版 LocalSend。


📚 关联文档


📜 协议

本项目使用 MIT License。

本项目完美兼容 LocalSend 协议。特别感谢开源项目 LocalSend 提供的优秀协议规范(Apache-2.0 授权)。OldSend 与 WatchSend 均为独立从零实现,未直接复制其源码。

About

The watch-exclusive branch of OldSend. Fully compatible with LocalSend, redesigned for Wear OS. | OldSend 的手表专属版,完整兼容 LocalSend,专为 Wear OS 深度定制。

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages