Files
opendance-android/tasks/006-connect-ui.md
T

48 lines
1.3 KiB
Markdown
Raw 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.
# 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 探测 `192.168.x.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)。