v1.8.6 用步频检测PDR替代加速度积分
v1.8.6 用步频检测 PDR 替代加速度积分
根本问题
之前的加速度二次积分方案在室内定位不可行:
- 传感器噪声被积分放大,导致静止时漂移
- 重力分离不完美
- 手机竖着拿时水平加速度主要在 z 轴,被忽略
- 即使走动 1.5 秒,积分位移也只有几厘米,根本看不出移动
修复:改用步频检测 PDR
- TYPE_STEP_DETECTOR 系统级步频检测(Android 4.4+,准确可靠)
- 每检测到一步,沿当前朝向推进固定步长 0.65 米
- TYPE_ROTATION_VECTOR 提供朝向
- 静止时(无步数)采样点位置不变,只更新信号值
- Android 10+ 需要 ACTIVITY_RECOGNITION 运行时权限,首次使用会弹窗请求
- 无 STEP_DETECTOR 传感器或未授权时,回退到加速度计手动步频检测(状态机:幅值超阈值 → 等峰值 → 回落判定为一步)
注意
- 首次启动会请求"身体活动识别"权限,授权后下次启动才能用系统步频检测
- 本次启动如未授权,会用加速度计回退方案(准确度稍低但仍可用)
- 采样点下方会显示"共 X 步",可确认步频检测是否生效