Files
post-ocr/android-app/README.md
let5sne.win10 767271d499 feat: 添加 USB 摄像头连接功能
- 新增 Android USB 摄像头 APP (MJPEG 服务器)
- 电脑端支持 ADB 端口转发连接
- 修复 .gitignore 忽略 Android 文件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 22:23:43 +08:00

113 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 端口转发