Files
ElderlyDialer/docs/android17-adaptation-validation.md

2.3 KiB
Raw Permalink Blame History

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. 播放失败或模型初始化失败:播放服务退出并释放播放器和唤醒锁;最长存活两分钟,不自动复活。

限制

通知/通知渠道被用户关闭时不能强行显示提醒;系统免打扰和闹钟音量仍遵循系统设置。已有通知渠道保留用户设置。未执行真机验证前,编译通过不能视为后台播放已验收。