feat: 添加 USB 摄像头连接功能
- 新增 Android USB 摄像头 APP (MJPEG 服务器) - 电脑端支持 ADB 端口转发连接 - 修复 .gitignore 忽略 Android 文件 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
112
android-app/README.md
Normal file
112
android-app/README.md
Normal 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 端口转发
|
||||
Reference in New Issue
Block a user