Android 当驾驶员下车时,如何停止定期位置更新?

Android 当驾驶员下车时,如何停止定期位置更新?,android,geolocation,Android,Geolocation,在卡车上,平板电脑上运行着一个应用程序,每60秒记录一次位置 一旦卡车停止行驶,我需要停止对位置的定期记录,因此平板电脑的进一步移动不被视为路线的一部分 例如,驾驶结束后,驾驶员可能会带着平板电脑在镇上四处走动 我的解决办法是: 按钮驾驶员在结束驾驶时必须按下按钮才能停止录制-这很容易实现,但存在驾驶员忘记按下按钮的风险 检查当前位置和以前位置之间的差异-例如,当以米为单位的距离在几分钟内变化不超过20米时,车辆将被视为停止。当然,这辆车有交通堵塞的危险 使用谷歌服务的活动识别-使用此机制检查活

在卡车上,平板电脑上运行着一个应用程序,每60秒记录一次位置

一旦卡车停止行驶,我需要停止对位置的定期记录,因此平板电脑的进一步移动不被视为路线的一部分

例如,驾驶结束后,驾驶员可能会带着平板电脑在镇上四处走动

我的解决办法是:

  • 按钮驾驶员在结束驾驶时必须按下按钮才能停止录制-这很容易实现,但存在驾驶员忘记按下按钮的风险
  • 检查当前位置和以前位置之间的差异-例如,当以米为单位的距离在几分钟内变化不超过20米时,车辆将被视为停止。当然,这辆车有交通堵塞的危险
  • 使用谷歌服务的活动识别-使用此机制检查活动,一旦我获得其他活动(足够高的置信度),我就停止录制
  • 您对此有何建议?

    按钮驾驶员在结束驾驶时必须按下按钮才能停止录制-这很容易实现,但存在驾驶员忘记按下按钮的风险

    我同意你的看法,让用户决定应用程序的动作太危险了

    检查当前位置和以前位置之间的差异-例如,当以米为单位的距离在几分钟内变化不超过20米时,车辆将被视为停止。当然,这辆车有交通堵塞的危险

    在我看来,这个alghoritm是没有效率的;最好不要检查仪表上的变化,因为GPS传感器在感应过程中也会有一些误差,所以您应该检查仪表上的变化是否超过了误差(精度值);在这种情况下,你很肯定有些东西已经改变了或没有

    使用谷歌服务的活动识别-使用此机制检查活动,一旦我获得其他活动(足够高的置信度),我就停止录制

    这将是非常有趣的,但应该进行测试


    然而,还有第四种情况:使用通过蓝牙连接到设备的另一个设备(如驾驶员个人智能手机)记录GPS数据,当驾驶员让车时,设备将失去BT连接,因此,可以从GPS应用程序中捕获此触发器,并在这种情况下停止数据记录

    是否可能要求在车内对应用程序充电?然后,你可以在充电器拔下后做一些漂亮的事情,以引起司机的注意,或者停止位置更新。这是一个有趣的想法。我去看看是否有码头。如果是这样,我可以监控当前的扩展坞状态(和类型),并根据此状态开始/停止位置记录。我想在扩展坞中设备也不会旋转等,因此您也可以使用传感器检测任何扩展坞的设备移除情况。