例如,我想在用户点击设备时启动板载数据记录器,并在他们双击时停止数据记录器。
问问题
47 次
1 回答
0
TAP 和 DOUBLE_TAP 在/System/States -API 中可用。但是,传感器不可能同时进行 TAP 和 DOUBLE_TAP,因此要同时获得两者,您必须执行以下操作:
- 订阅 /System/States/4 (4 == TAP)
- 当收到 TAP 事件时触发 one_off 计时器(大约 600-800 毫秒是好的)
- 如果在触发定时器之前接收到第二个 TAP,则重置定时器并作为 DOUBLE_TAP 事件转发
- 如果计时器到期而没有检测到任何 TAP,则作为 TAP 事件转发
其他需要考虑的事项是:
- 用户通常想要命令通过的某种反馈(例如 LED 闪烁或移动声音)。没有它,他们往往会一次又一次地尝试。
- 与许多测试对象一起测试 TAP 灵敏度等是一个好主意。每个人倾向于以不同的方式点击。
- 如果也订阅了 IMU (Acc, Gyro / Magn),则 TAP 检测对测量订阅的采样率起作用。DOUBLE_TAP 检测在 13 或 26 Hz 采样率下不可靠。
全面披露:我为 Movesense 团队工作
于 2020-07-01T09:54:03.757 回答