这个问题不完全是关于代码,而是关于实现。
我正在开发一个应用程序,需要检查手机是否在口袋里。我有一个简单的算法来检测用户行走时的脚步。问题是手上的运动也可以被记录为一步,例如当用户运行应用程序并将步骤值归零(从他/她执行此操作到手机放入口袋时),应用程序会注册几个步骤。
我的想法是检查接近传感器,看看手机是否在口袋里。
我对加速度计传感器所做的事情是,我继续读取缓冲区中的加速度计值,当缓冲区已满时,我计算步数(在计算时,缓冲区仍然接受新的加速度计读数)。
因为我听说接近传感器是基于中断的而不是基于轮询的(就像 acc 传感器一样)。我怎样才能将这两者协调在一起?
可以肯定地说,如果我在将 acc 值写入缓冲区之前检查接近度,并在计算开始时再次检查它,如果接近度未处于 FAR 模式,我可以假设手机在口袋里吗?
有任何建议欢迎提出!
在研究发明设备上口袋检测之前构建的遗留应用程序时,我遇到了一种有趣的方法,该方法结合了光和接近传感器。
接近传感器:如果它给出 0(其被覆盖),我会认为它在口袋内部并开始步骤计算,一旦它变为 5(在外部,附近没有中间值)我会假设他移除了口袋里的手机。
光传感器:作为辅助措施,可以设置光传感器阈值(例如,低于 5 勒克斯)。低于阈值的值可能表示口袋环境,但存在诸如黑暗条件等限制。
方向传感器:在某些情况下,如果方向传感器始终检测到朝下的位置,则假设手机放在口袋中。
稳健性组合技术: 虽然每种方法都有局限性,但将它们结合起来可以提高口袋检测的准确性。例如,要求三个传感器中的两个就“口袋内”达成一致可以提高可靠性。