手机验证码自动同步到电脑。Android 手机收到短信或通知中的验证码后,自动转发到桌面客户端,复制到剪贴板并弹出系统通知。
- 自动提取短信和应用通知中的验证码
- 通过云端中转实时同步到桌面
- 桌面端自动复制到剪贴板 + 系统通知
- 扫描二维码一键配对
- 系统托盘常驻,关闭窗口最小化到托盘
- 支持 HTTP 回退,确保消息送达
- 消息去重,避免重复推送
Android 手机 Cloudflare Worker 桌面客户端
┌──────────────┐ ┌─────────────────┐ ┌──────────────┐
│ 短信接收器 │──WebSocket──▶│ │──WebSocket──▶│ Tauri 2 App │
│ 通知监听器 │──HTTP POST──▶│ Durable Object│ │ Vue 3 │
│ 前台服务 │ │ (中转房间) │ │ 自动复制 │
└──────────────┘ └─────────────────┘ └──────────────┘
配对流程: 桌面端创建房间 → 生成二维码(含服务器地址 + 配对码)→ Android 扫码配对 → 双端通过 WebSocket 实时通信
sms-sync/
├── android/ # Android 端 (Kotlin + Jetpack Compose + Material 3)
├── desktop-tauri/ # 桌面端 (Tauri 2 + Rust + Vue 3 + Vuetify)
├── worker/ # 云端中转 (Cloudflare Workers + Durable Objects)
├── proto/ # 消息协议定义 (JSON Schema)
├── LICENSE
└── README.md
一键部署(推荐): 点击下方按钮,自动 Fork 仓库并部署到你的 Cloudflare 账号:
手动部署:
前提条件: Cloudflare 账号、Node.js 18+
cd worker
npm install
npm run deploy部署成功后会得到一个 URL,形如 https://sms-sync-relay.<your-account>.workers.dev。
cd desktop-tauri
npm install
# 修改默认服务器地址(可选,也可在应用设置中修改)
# 编辑 src/composables/useConfig.ts 中的 DEFAULT_SERVER
# 开发模式
npm run tauri dev
# 构建安装包
npm run tauri build构建产物:
- macOS:
src-tauri/target/release/bundle/dmg/SMS Sync_*.dmg - Windows:
src-tauri/target/release/bundle/msi/或nsis/ - Linux:
src-tauri/target/release/bundle/deb/或appimage/
前提条件: Android Studio
- 用 Android Studio 打开
android/目录 - 等待 Gradle 同步完成
- 连接手机或启动模拟器
- 点击 Run 运行
- 部署 Worker — 参照上方部署指南
- 安装桌面端 — 打开应用,在设置中填入你的 Worker 地址,点击保存
- 打开配对页面 — 桌面端会显示二维码和 6 位配对码
- 安装 Android 端 — 打开应用,授予短信和通知权限
- 扫码配对 — 用 Android 端扫描桌面端二维码
- 开始使用 — 手机收到验证码后会自动同步到电脑剪贴板
小米系统会积极冻结后台进程,导致锁屏后无法接收验证码。请进行以下设置:
- 自启动管理 — 设置 → 应用设置 → 自启动管理 → 开启 SMS Sync
- 电池策略 — 设置 → 应用设置 → 省电策略 → SMS Sync → 选择「无限制」
- 电池优化 — 设置 → 电池 → 更多电池设置 → 关闭 SMS Sync 的电池优化
- 锁定后台 — 最近任务界面,下拉 SMS Sync 卡片,点击锁定图标
- 开发者选项(可选)— MIUI 优化 → 关闭
其他厂商(三星 OneUI、华为 EMUI 等)也可能有类似的后台限制,请在系统设置中为 SMS Sync 开放后台权限。
Worker 提供以下 HTTP 接口:
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/create-room |
创建房间,返回 roomId、pairCode、desktopToken |
| POST | /api/pair |
Android 用配对码加入房间 |
| GET | /api/room-info |
查询房间配对状态 |
| POST | /api/send-code |
HTTP 回退发送验证码 |
| GET | /ws |
WebSocket 实时连接 |
| 组件 | 技术 |
|---|---|
| Android | Kotlin、Jetpack Compose、Material 3、CameraX、ML Kit |
| 桌面端 | Tauri 2、Rust、Vue 3、TypeScript、Vuetify |
| 云端中转 | Cloudflare Workers、Durable Objects、TypeScript |
| 通信协议 | WebSocket + HTTP 回退 |

