无障碍服务启用——实现高级交互的基础
无障碍服务是用来干什么的
Android 的无障碍服务(Accessibility Service)本来是为视障、听障等辅助功能设计的。dynamicSpot 也使用这项 API 来:
- 识别用户对灵动岛的点击、长按、滑动等手势
- 帮助实现弹窗内直接回复消息(点击灵动岛弹出的回复框)
- 让灵动岛在锁屏状态下也能正常显示
- 配合音乐播放器实现更流畅的切换歌曲操作
注意:dynamicSpot 的开发者 Jawomo 在官方描述中明确声明,无障碍服务不会用于收集任何用户数据。
授予步骤
无障碍服务的入口路径和其他两个权限不同,位于系统辅助功能设置中。
标准流程
- 打开 dynamicSpot 设置向导
- 点击「Accessibility Service」或「辅助功能服务」
- 系统跳转到辅助功能管理页面
- 在「已下载的服务」或「第三方服务」分组中找到 dynamicSpot
- 进入后开启右上角的开关
- 系统弹出风险提示(无障碍服务权限很高),确认后开启
各品牌具体路径
| 品牌 | 系统设置路径 |
|---|---|
| 通用 Android | 设置 → 辅助功能 → 已下载的服务 |
| 小米澎湃OS | 设置 → 更多设置 → 无障碍 → 已下载的服务 |
| 华为鸿蒙 | 设置 → 辅助功能和智慧感知 → 无障碍 → 已安装的服务 |
| OPPO / realme | 设置 → 其他设置 → 无障碍 → 动态Spot |
| vivo / iQOO | 设置 → 快捷与辅助 → 无障碍 → dynamicSpot |
权限被回收怎么办
部分品牌的系统(尤其小米澎湃OS、vivo OriginOS)会在后台清理时自动关闭无障碍服务。如果发现灵动岛长按没反应、弹窗内无法回复,很可能就是无障碍服务被系统回收了。
解决方法:
- 进入上述路径确认服务状态
- 如果已关闭,重新开启
- 将 dynamicSpot 加入电池优化排除列表(见 电池优化排除)
三个权限的关系总结
| 权限 | 作用 | 没开会怎样 |
|---|---|---|
| 通知使用权 | 读取其他 App 的通知 | 灵动岛完全不弹窗 |
| 悬浮窗权限 | 在其他 App 之上绘制灵动岛 | 灵动岛只在 dynamicSpot 自己的界面可见 |
| 无障碍服务 | 识别手势、弹窗内回复 | 点击灵动岛没反应、无法直接回复 |
三个权限缺一不可,但授予顺序有讲究:先通知使用权,再悬浮窗,最后无障碍——向导默认就是这个顺序。