Releases
20-2.9.0
Compare
Sorry, something went wrong.
No results found
wumisc
released this
02 Nov 12:04
🏗 架构:相机彻底搬离 SystemUI
新增 WalkPreviewService(App 进程相机前台服务),RearCameraOverlay 随之迁移
Hook 端删除全部相机逻辑,只保留「该显示 / 该收起」的指挥广播(带令牌)
解决系统界面无相机权限、CameraService 限制、崩溃连带系统界面三个根本问题
预览服务回传真实显示状态,修正 Hook 端去重状态与实况脱节导致「手动关一次后再也不自动开」
✨ 新增:车祸预警(Pixel 风格)
CrashDetector:合加速度阈值 + 连续 2 次命中 + 60 秒冷却
三档灵敏度:低 ≈2.5g / 中 ≈2.0g / 高 ≈1.5g
EmergencyAlertActivity:全屏急救卡 + 60 秒倒计时,超时先发含位置短信再拨号
无权限时降级为跳转短信/拨号界面,不静默失败
急救卡页面新增开关与灵敏度设置,权限按需申请
📝 日志链路重做
日志路径改为 /storage/emulated/0/Android/Travel safely/diag.log(用户可见)
目录判定由不可靠的 canWrite() 改为探针写入 (真写一字节再删)
三级降级:用户目录 → 应用私有目录 → 仅 logcat,结果打进 logcat
授予「所有文件访问」后运行期热切换 ,不用重启
App 启动时向 Hook 索要内存日志,写入同一文件(步态/手电/车祸都在那个进程)
🐛 关键修复
首页与二级页状态矛盾 :总开关卡片无开关控件、点击静默翻转;关闭后磁贴文案被覆盖成「总开关已关闭」,掩盖真实设置 → 改为明确文案 + 切换提示
全屏预览黑屏 :TextureView 所在悬浮窗缺 FLAG_HARDWARE_ACCELERATED,一帧都上不了屏
全屏尺寸用 displayMetrics(应用可用区)→ 改真实屏幕像素 + FLAG_LAYOUT_IN_SCREEN
视图 0×0 只重试一次 → 200ms × 3 退避
手电两套开关(开/关各自独立)合并为绝对开关;通知按钮 action 统一
夜间手电丢失「屏幕亮」与「预览避让相机」两个门槛,导致开了行走模式就永不提醒
总开关关闭时仍能拉起预览 → 改为只记录不弹并说明原因
exportConfig 无 try/catch,存储异常直接崩 UI 线程
配置回退路径硬编码 /data/data/<包名>/ → 改用 ctx.filesDir
实验区手电开关用本地布尔记账 → 改读 TorchCallback 真实状态
急救卡缺 onResume 刷新,改完总开关回来仍显示旧状态
行走模式页诊断行、testRearCam* 死字段清理
🧪 测试与验证
单测扩展到 43 项 / 8 个类 ,新增 PreviewWindowTest、CrashDetectorTest、DiagLogTest
Lint 0 error
实验区夜间手电测试改为真实通知链路(带可点击的「手电筒」按钮),不再是纯文本通知
You can’t perform that action at this time.