feat: 身份页显示本机账号台账(accounts_b64,v1.5)

平台在拉起身份页时顺带推这台设备登记的抖音账号(契约见
平台 doc/DEVICE_AGENT.md §5.2.1 与本仓库 INTERFACE.md §5.2.1):

- 解析 `--es accounts_b64`(标准 base64 + UTF-8 → JSONObject),在设备信息下面
  渲染账号列表:账号名称 / 抖音号 / [卡·发] 标记
- 一屏放不下:**最多显示 4 个** + "…还有 N 个,见平台「账号」页"
  (第一版 26sp 一行塞"名称+号+标记",720x1650 上第 3 个号就被切掉了,实测后收紧)
- 三种情况分清楚:无 extra → 整块不显示(= 这台没登记账号,行为与旧版逐字一致);
  有但解不开 → 显示一行"解析失败"(不静默,否则像"没账号");能解开 → 逐条列出
- 隐私:平台默认不推手机号(身份页是机器旁的公开屏幕)

版本 1.4 → 1.5(versionCode 6)。已在 A03 装机验证(带账号/不带账号两种截图)。
This commit is contained in:
2026-09-24 16:18:25 +08:00
parent 10a55849b6
commit b81aa1fd82
3 changed files with 112 additions and 8 deletions
+32 -2
View File
@@ -201,17 +201,47 @@ adb -s <serial> shell am start -n <pkg>/.ClipActivity --es text_b64 <base64(UTF-
- 平台判定失败的方式:`am start` 输出里有 `unable to resolve Intent` / `does not exist`
→ 视为"设备未安装 Agent"
### 5.2 设备身份显示(待设备端实现)
### 5.2 设备身份显示(已实现)
```bash
adb -s <serial> shell am start -n <pkg>/.InfoActivity \
--es name "A08" --es ip "192.168.20.100" --es serial "192.168.20.100:5555" \
--es server "http://192.168.20.220:18050"
--es server "http://192.168.20.220:18050" \
--es accounts_b64 "<base64(UTF-8 JSON)>" # 可选,见 §5.2.1
# 关闭:--es close 1
```
要求:全屏大字、再次调用可覆盖内容、`close` 可关闭、不驻留前台。
#### 5.2.1 本机账号台账(`accounts_b64`,可选 extras,已实现 v1.5)
平台在**打开**身份页时顺带推这台设备在「账号」页登记的抖音账号(`close` 时不带)。
**标准 base64(不是 URL_SAFE)+ UTF-8**:
```json
{"v":1,"total":4,"shown":4,"truncated":false,
"note":"设备『A03』登记 4 个号",
"accounts":[
{"name":"AA建材王总","douyin_id":"66057500463","device_name":"A03","device_no":"A03",
"sim_in_device":true,"can_post_video":true}]}
```
| 字段 | 说明 |
|------|------|
| `v` | 块格式版本(当前 **1**) |
| `total` / `shown` / `truncated` | 台账里的总数 / 本次几条 / 是否被截断 |
| `accounts[].name` / `douyin_id` | 账号名称 / **抖音号(纯号)** |
| `accounts[].sim_in_device` / `can_post_video` | 卡在机内 / 可发视频 |
| `accounts[].phone` | **默认不推**(大字页是公开屏幕);平台侧可传 `include_phone:true` 要 |
设备端三种情况要分清(InfoActivity 已按此实现):
| 情况 | 表现 |
|---|---|
| 没有该 extra | 账号块**整块不显示**(= 这台设备在台账里没登记账号,旧平台也走这条) |
| 有但解不开 | 显示一行**解析失败**提示(不要静默,否则看着像"这台没账号") |
| 有且能解开 | 逐条显示;`truncated` 时补"…还有 N 个,见平台「账号」页" |
### 5.3 一次性配置下发(建议设备端实现)
```bash