feat: 添加 USB 摄像头连接功能

- 新增 Android USB 摄像头 APP (MJPEG 服务器)
- 电脑端支持 ADB 端口转发连接
- 修复 .gitignore 忽略 Android 文件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
let5sne.win10
2026-02-12 22:23:43 +08:00
parent 35d05d4701
commit 767271d499
652 changed files with 28034 additions and 22 deletions

112
android-app/README.md Normal file
View File

@@ -0,0 +1,112 @@
# USB 摄像头连接方案
## 概述
通过 USB 数据线将 Android 手机作为摄像头连接到电脑,无需 WiFi/网络。
## 架构
```
┌─────────────────┐ USB ┌─────────────────┐
│ Android APP │ ◄─────────────► │ 电脑 ADB │
│ (MJPEG服务) │ adb forward │ desktop.py │
│ 端口 8080 │ │ localhost:8080 │
└─────────────────┘ └─────────────────┘
```
## 使用步骤
### 1. 准备 Android APP
#### 方式A: 使用 Android Studio 编译(推荐)
1. 安装 Android Studio
2. 打开 `android-app` 目录
3. 连接手机或启动模拟器
4. 点击 Run 按钮
#### 方式B: 下载预编译 APK
如需预编译 APK请联系开发者或自行编译。
### 2. 手机端操作
1. **安装并启动**「USB摄像头」APP
2. **开启 USB 调试**
- 设置 → 关于手机 → 连续点击"版本号" 7次
- 设置 → 开发者选项 → USB调试开启
3. 点击 APP 中的「启动」按钮
4. 屏幕显示:"服务运行中 端口: 8080"
### 3. 电脑端操作
#### 安装 ADB
```bash
# Windows: 下载 platform-tools
# https://developer.android.com/tools/releases/platform-tools
# 或使用 winget
winget install Google.PlatformTools
# 验证安装
adb version
```
#### 连接手机
```bash
# 1. USB 连接手机,手机上弹出"允许USB调试"时点击"允许"
# 2. 验证连接
adb devices
# 应显示类似:
# List of devices attached
# XXXXXXXX device
```
#### 运行桌面程序
```bash
cd d:\code\post-ocr
py -3.12 src\desktop.py
```
#### 连接摄像头
1. 在程序中点击 **"🔌 USB连接"** 按钮
2. 程序会自动执行 `adb forward tcp:8080 tcp:8080`
3. 连接成功后显示实时画面
## 工作原理
1. 手机 APP 启动 MJPEG 流服务器(监听 8080 端口)
2. ADB 将手机端口转发到电脑:`adb forward tcp:8080 tcp:8080`
3. 电脑 OpenCV 读取:`cv2.VideoCapture("http://localhost:8080")`
4. 画面实时显示,支持拍照识别
## 故障排查
### 问题ADB 找不到设备
- 检查 USB 线是否支持数据传输(非仅充电线)
- 手机上是否允许 USB 调试
- 尝试更换 USB 端口
### 问题:连接失败
- 确保 APP 已启动并显示"服务运行中"
- 检查端口 8080 是否被占用
- 尝试重启 APP
### 问题:画面卡顿
- 降低分辨率:在 CameraHelper.kt 中修改预览尺寸
- 检查 USB 线质量
## 技术栈
- **Android**: Kotlin + Camera2 API
- **网络**: MJPEG over HTTP
- **电脑端**: Python + OpenCV + PyQt6
- **通信**: ADB 端口转发