代码之家  ›  专栏  ›  技术社区  ›  Pentium10

当GPS不可用时,如何在手机移动时获得通知?

  •  1
  • Pentium10  · 技术社区  · 14 年前

    我想知道手机什么时候在运动,但不是所有的运动。例如,拿起或挥舞电话不应触发。

    理想情况下,我希望在电话/人员处于>“步行”状态时运行代码。我有什么选择?

    3 回复  |  直到 13 年前
        1
  •  2
  •   Mark    14 年前

    你可以在手机中使用加速度计和数字罗盘的组合来确定速度和方向。

    如果你所需要做的就是确定这个人是否在走路,你所需要的就是加速度计。只需将其输出处理为步行步骤。

    网上有很多关于用加速度计检测脚的教程。

        2
  •  0
  •   Ryan Hayes    14 年前

    您还可以从WiFi网络和手机塔获取您的位置。Android中的所有位置提供程序都是 android.location.LocationProvider . 那可能是个不错的开始。我不知道它们中的任何一个对你来说都是最好的,因为它们的“范围”可以有几百英尺宽。

        3
  •  0
  •   nithinreddy    13 年前

    Android加速度计为我们提供了使用SensorEvent类了解加速度的功能。因此,使用类的对象和handle onsensorchanged()来确定设备中的移动。

    x=传感器事件值[0]; 表示X方向的加速度。

    所以你可能感兴趣的是,找出x,y和z方向的加速度,并尝试计算最后10个这样的样本的平均值和标准偏差。 研究标准差肯定会让你找到正确的方向!如果它变为0,则表示设备仍在运行。如果sd>0.5持续15秒左右,则表示设备持续移动!让我知道你是否需要更多的帮助!

    干杯, 尼辛