检测手机是否在口袋里

问题描述 投票:0回答:1

这个问题不完全是关于代码,而是关于实现。

我正在开发一个应用程序,需要检查手机是否在口袋里。我有一个简单的算法来检测用户行走时的脚步。问题是手上的运动也可以被记录为一步,例如当用户运行应用程序并将步骤值归零(从他/她执行此操作到手机放入口袋时),应用程序会注册几个步骤。

我的想法是检查接近传感器,看看手机是否在口袋里。

我对加速度计传感器所做的事情是,我继续读取缓冲区中的加速度计值,当缓冲区已满时,我计算步数(在计算时,缓冲区仍然接受新的加速度计读数)。

因为我听说接近传感器是基于中断的而不是基于轮询的(就像 acc 传感器一样)。我怎样才能将这两者协调在一起?

可以肯定地说,如果我在将 acc 值写入缓冲区之前检查接近度,并在计算开始时再次检查它,如果接近度未处于 FAR 模式,我可以假设手机在口袋里吗?

有任何建议欢迎提出!

android proximity proximitysensor
1个回答
0
投票

在研究发明设备上口袋检测之前构建的遗留应用程序时,我遇到了一种有趣的方法,该方法结合了光和接近传感器。

  1. 接近传感器:如果它给出 0(其被覆盖),我会认为它在口袋内部并开始步骤计算,一旦它变为 5(在外部,附近没有中间值)我会假设他移除了口袋里的手机。

  2. 光传感器:作为辅助措施,可以设置光传感器阈值(例如,低于 5 勒克斯)。低于阈值的值可能表示口袋环境,但存在诸如黑暗条件等限制。

  3. 方向传感器:在某些情况下,如果方向传感器始终检测到朝下的位置,则假设手机放在口袋中。

稳健性组合技术: 虽然每种方法都有局限性,但将它们结合起来可以提高口袋检测的准确性。例如,要求三个传感器中的两个就“口袋内”达成一致可以提高可靠性。

© www.soinside.com 2019 - 2024. All rights reserved.