Files
post-ocr/android-app
let5sne.win10 6757a82cee fix: 添加 INTERNET 权限以支持 MJPEG HTTP 服务器
MjpegServer 需要监听 8080 端口提供 HTTP 流媒体服务

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

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

# Windows: 下载 platform-tools
# https://developer.android.com/tools/releases/platform-tools

# 或使用 winget
winget install Google.PlatformTools

# 验证安装
adb version

连接手机

# 1. USB 连接手机,手机上弹出"允许USB调试"时点击"允许"
# 2. 验证连接
adb devices

# 应显示类似:
# List of devices attached
# XXXXXXXX    device

运行桌面程序

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 端口转发