Skip to content

feat: 识别口令(剪贴板口令识别 → 灵动岛) - #96

Open
Tech--man wants to merge 1 commit into
1812z:mainfrom
Tech--man:feat/command-token-recognition
Open

feat: 识别口令(剪贴板口令识别 → 灵动岛)#96
Tech--man wants to merge 1 commit into
1812z:mainfrom
Tech--man:feat/command-token-recognition

Conversation

@Tech--man

Copy link
Copy Markdown

功能

新增「识别口令」功能:监听剪贴板,识别抖音口令后通过灵动岛提示一键打开抖音。

实现

  • 剪贴板监听:hook SystemUI 的 Application.onCreate,获取 ClipboardManager 并注册 OnPrimaryClipChangedListener
  • 口令识别:可插拔的 TokenRecognizer 架构,内置 DouyinTokenRecognizer(覆盖 ¥…¥、₤…₤、v.douyin.com 短链、复制打开抖音等常见文案)
  • 灵动岛分发:匹配后通过 IslandDispatcher 投递灵动岛,点击拉起目标 app
  • 可配置项:识别总开关、抖音子开关、显示超时、去重窗口、点击后清空剪贴板
  • 单元测试:补充 DouyinTokenRecognizerTest,覆盖用户提供的真实口令样本

Bug 修复

修复 XposedPrefsSyncApp.CORE_PREF_KEYS 与 ConfigManager.CORE_PREF_KEYS 不同步问题:新增的 5 个 command_token key 只在 SystemUI 侧 ConfigManager 注册为 core key,App 侧同步时却按 shard key 分发,导致 SystemUI 读 core 时拿不到开关值(永远为 false),功能完全不生效。本次在 XposedPrefsSyncApp 侧补齐 5 个 key。

测试

实机验证(小米机型 + LSPosed):

  • 修复前:开关写入后 SystemUI 侧 onPackageLoaded 读到 pref_command_token_enabled=false,CommandTokenHook.init 不执行
  • 修复后:读到 true,hook 正常 init,剪贴板监听器注册成功

- 新增剪贴板监听 + 抖音口令识别器,匹配后向灵动岛分发打开抖音
- 可配置识别开关、超时时长、去重窗口、点击后清空剪贴板
- 修复 XposedPrefsSyncApp.CORE_PREF_KEYS 未包含 command_token key
  导致 SystemUI 侧读不到开关值的同步 bug
- 补充 DouyinTokenRecognizer 单元测试
@1812z

1812z commented Jul 6, 2026

Copy link
Copy Markdown
Owner

暂不考虑合入:
1.已有相同类型模块 HyperCopy
2.规则不应写死,而是支持灵活导入导出通用适配

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants