Files
opendance-android/tasks/006-connect-ui.md
T
zijunchiang 264786134c docs: 新增「初次部署(从零跑起来)」;去混淆字符与真实内网信息
- README.md / README.txt 新增初次部署章节:前置条件(JDK 17 / SDK 34 / Gradle 8.9)、
  获取代码与本地配置(local.properties 不入仓)、Debug/Release 构建、装到手机与相机权限、
  连接配置(只连 Windows 客户端,默认 8765 / /pose)、第一次跑通、自检清单、常见问题
- 单测数量按实际(30 项)修正
- 三库同源契约:':=' 写法修回、去掉真实 MariaDB 版本串
- 全文去除易被 Gitea 判为「模棱两可 Unicode」的字符
- 本机 JDK 路径与内网示例地址改占位符 / RFC 5737 文档网段
2026-09-15 21:33:27 +08:00

1.3 KiB
Raw Blame History

T-AND-006 连接页 + 主机发现

  • 状态:done
  • 依赖:T-AND-005

目标

让用户快速找到并连上 Windows 客户端,无需手输 IP。

load

DSH.md
app/src/main/java/com/opendance/studio/ui/ConnectScreen.kt
app/src/main/java/com/opendance/studio/net/HostDiscovery.kt

交付物

  • ui/ConnectScreen.kt:地址输入、扫描、测试连接、推流参数
  • net/HostDiscovery.kt:局域网扫描

主机发现策略

Windows 客户端是裸 WebSocket 服务端(不是 HTTP 服务),无法靠扫描 HTTP 端点发现。因此:

  1. 取手机在 WiFi 网的 IPv4 地址(排除 rmnet* 蜂窝网卡与 169.254.* 链路本地地址)
  2. 推导 /24 网段
  3. 并发 TCP 探测 <局域网网段>.1-254:8765(并发 32、单机超时 300ms)
  4. 以 Flow 形式边扫边产出,按延迟升序展示--最快响应的最可能是目标机

整段扫描约 2~3 秒。

可配置项

项 说明
IP / 端口 默认 8765,与契约一致
分辨率 480×360 / 640×480 / 1280×720
目标帧率 写入 hello 的 targetFps
镜像画面 写入 flags.bit0
仅上半身模式 写入 flags.bit2

验收

assembleDebug 通过;连接页可编辑参数并持久化(SharedPreferences)。