海阔天空,勇敢去走。
纯本地、无服务器的安全出行提醒 LSPosed 模块,只 Hook 系统进程 android。
不依赖 GMS,纯传感器步态识别,低功耗运行。
基于 GPL-3.0 开源。适配 HyperOS / Android 12+。
| 磁贴 | 功能 | 说明 |
|---|---|---|
| 🚶 总开关 | masterEnable | 关闭后所有检测和提醒全部停用 |
| 🔋 电量预警 | enableBatteryWarning | 电量≤15%且行走时提醒充电 |
| 🪪 证件提醒 | enableIdReminder | 确认持续步行后提醒证件贴身放好 |
| 🪑 久坐提醒 | enableSitHealthRemind | 持续静止2小时提醒起身活动 |
| 🔦 夜间手电 | enableNightTorch | 夜间(22:00~06:00)行走时通知带「开手电筒」按钮 |
| 📷 后置看路 | enableRearCamera | 走路时用后置摄像头看前方路况(长按进设置) |
| 🤝 社交礼仪 | enableSocialTipCard | 按出行模式(求职/约会/聚会/旅游)给出社交提示 |
| 🚑 急救卡 | — | 编辑个人急救信息(姓名/血型/地址/紧急联系人) |
SafeWalk 采用五重判定,解决"床上翻身误触发"和"没出门就弹提醒"的问题:
- 步数阈值:5分钟滑动窗口内累计 ≥ 800 步才进入验证
- 步态验证:加速度计4秒内检测到连续3步、步频 1.4~2.2Hz、间隔稳定(±180ms)才算真走路
- 平躺加权:手机平躺(Z轴>8.5)时,峰值阈值 ×1.45,床上翻身更难触发
- 静置重置:超过180秒没新步数 → 直接回待机,不触发任何提醒
- 冷却机制:触发后5分钟内不重复弹,证件/久坐每日只弹1次,电量1小时冷却
SLEEP(待机)
↓ 收到计步器事件
LIGHT_MONITOR(低功耗监测,5分钟滑动窗口计步)
↓ 累计步数 ≥ 800 步
VERIFYING(步态验证,打开加速度计4秒)
↓ GaitDetector 判定是否真走路
触发提醒(证件→社交→手电→后置看路)→ 回到 SLEEP
走路时用后置摄像头实时显示前方路况,两种形态可切换:
- 全屏半透明叠加:整个屏幕半透明显示后方路况,下层应用照常使用
- 右下角小窗:约1/3屏宽的小窗,不挡主要操作区域
特性:
- 触摸完全穿透:悬浮窗只显示、不挡操作
- 不高于状态栏:顶部留状态栏高度的边距
- 自动模式:走起来自动开、停下自动收
- 手动模式:磁贴开关直接控制
所有提醒统一发成标准高优先级通知(PRIORITY_HIGH heads-up),可被 HyperIsland(超级岛)在 SystemUI 侧拦截,以超级岛 + 焦点通知样式展示。
夜间手电通知带「开手电筒」按钮,点击直接切换手电筒。
- 国风设计:宣纸底 + 靛蓝 + 墨边 + 朱红印章
- 2×2 紧凑磁贴布局,8个功能块一目了然
- 深色模式自动跟随系统
- 踩坑指南:求职/约会/聚会/旅游四种出行场景的避坑清单
- 实验区:长按关于页底部按钮进入,普通用户看不到
- 在 LSPosed 中启用「安全出行」并勾选作用域 系统界面(android)
- 重启系统界面(或重启手机)
- 打开配置页,授予身体活动和通知权限
- 开启「总开关」,按需配置各功能
需要 JDK 17+、Android SDK(compileSdk 35 / minSdk 30):
JAVA_HOME=<jdk路径> ANDROID_HOME=<sdk路径> gradle assembleDebug --no-daemon产物:app/build/outputs/apk/debug/app-debug.apk
本模块建立在 LSPosed / Xposed 框架之上,致敬并感谢这些伟大的开源项目,以及整个 Xposed / LSPosed 社区——正是他们让安卓模块生态生生不息。
SafeWalk 是面向 HyperOS / Android 的 LSPosed 出行感知模块,实现不依赖 GMS 的步行状态识别。项目大量参考优秀开源项目的算法、架构思路,特此感谢各位开发者的贡献:
- bagilevi/android-pedometer — 纯加速度计步器经典实现:峰值检测、步频区间过滤、自适应阈值的基础思路,是步态检测部分最重要的参考来源。
- mdeguzis/StepCounter — 滑动窗口方差统计实现、根据运动状态动态切换传感器采样率的省电策略。
- ashishb/android-step-detector — 基于 FFT 频谱分析识别周期性步态的方案,作为高级增强功能备选。
- tonyo567/hysteresis-state-machine — 分离式迟滞状态机思想,独立配置进入防抖、退出防抖计时器,解决状态频繁抖动切换。
- KalebKE/FSensor — Madgwick/Mahony 姿态滤波、卡尔曼 GPS 平滑算法,作为后续 GPS 漂移优化的备选方案。
- p-v/Android-SensorService — Android 后台传感器监听、系统采样节流、丢采样容错、前台服务适配方案,适配国内定制 ROM 后台限制。
- UrbanBigDataCentre/meowmotion — GPS 轨迹分割、停留/移动分类、连续位移校验逻辑,用于离线导出轨迹日志调参。
此外,本项目还参考学习了以下 HyperOS / 传感器相关开源项目,由衷感谢各位开发者的公开分享:
- HyperBridge — HyperOS 超级岛自定义通知卡片引擎思路
- WidgetEnhancer — 通知快捷按钮、系统手电筒实现思路
- HyperLight — HyperOS 悬浮通知相关研究
- SensorFusion — 传感器姿态融合、自适应阈值算法
- AccStepCounter — 低功耗计步滤波实现
声明:SafeWalk 所有代码为独立手写重构,仅借鉴思路与算法原理,没有直接拷贝上述项目源码。
GPL-3.0,见 LICENSE。