30 lines
2.3 KiB
Markdown
30 lines
2.3 KiB
Markdown
# Android 17 权限、报时与闹钟验证
|
||
|
||
本次范围:局域网运行时权限、整点报时前台播放、闹钟权限与调度恢复。系统 UID 和平台签名保持原状。
|
||
|
||
## 已执行检查
|
||
|
||
- 使用本机 JDK 21 执行 `:app:compileDebugJavaWithJavac --offline`,Kotlin/Java 编译通过。
|
||
- Manifest 权限、私有播放服务类型和三个恢复广播结构检查通过。
|
||
- `git diff --check` 通过。
|
||
- 默认 JDK 17 无法读取项目现有 framework.jar 的 Java 21 字节码;本次仅在验证命令中切换 JDK,未修改项目
|
||
JDK 配置。
|
||
|
||
## 设备回归(待执行)
|
||
|
||
使用目标量产固件,分别覆盖 Android 12、13、14 和 17;系统 UID 若默认获权,需要额外使用可撤销权限的测试环境覆盖拒绝路径。
|
||
|
||
1. 新安装打开桌面:按需出现局域网(仅 17+)、通知(13+)、精确闹钟和全屏提醒设置引导。取消后不立即重复弹同一个引导。
|
||
2. 拒绝附近设备权限:远程协助不启动采集,界面提示授权;在应用设置授权后返回桌面,信令重新连接,局域网 API
|
||
和串流可用。
|
||
3. 拒绝通知权限后允许:回到应用确认设置引导可用;启用一分钟后的闹钟,锁屏确认通知和全屏页面可用。关闭全屏授权时,确认通知仍有声音、点击可打开闹钟。
|
||
4. 缺少精确闹钟权限时保存闹钟:数据库记录保留,后台不强行打开设置。授权后返回应用或等待授权广播,确认已启用任务重新安排。
|
||
5. 撤销精确闹钟权限后重新授权:确认任务恢复,不因 SecurityException 崩溃。重复闹钟正常计算下一次,一次闹钟正常禁用。
|
||
6. 启用整点报时,锁屏并让应用处于后台:下一整点应显示短时前台通知、通过闹钟音频流播报,完成后通知和服务退出。首次冷启动模型也应完成播报。
|
||
7. 设备重启、应用覆盖更新后:已启用闹钟和报时重新调度;关闭报时则不重新启用。
|
||
8. 播放失败或模型初始化失败:播放服务退出并释放播放器和唤醒锁;最长存活两分钟,不自动复活。
|
||
|
||
## 限制
|
||
|
||
通知/通知渠道被用户关闭时不能强行显示提醒;系统免打扰和闹钟音量仍遵循系统设置。已有通知渠道保留用户设置。未执行真机验证前,编译通过不能视为后台播放已验收。
|