0

当框架返回类型时,我正在使用CMMotionActivity并尝试区分汽车、火车和公共汽车。automotive

这不可能只使用CoreMotion,所以我认为有必要使用 3rd 方服务,例如云服务或 3rd 方框架。

有没有人面临同样的问题?谢谢

4

1 回答 1

6

不久前我遇到了同样的问题。长话短说,这几乎是不可能存在的。不过,自己烤也不是太难。这是我解决它的方法-

除了动作权限外,我的应用程序还具有后台位置权限。背景位置使应用程序保持活力。您可能知道,您无法从后台启用位置监控,但您可以根据需要使其保持活动状态,并且可以从后台更改服务质量。为了避免耗尽电池,我将其设置为尽可能低的数据质量,这样它在空闲时基本上对功耗没有影响。这样,您就可以在后台访问运动数据,并能够在不打开应用程序的情况下启用精确的位置跟踪,您只需永远不会关闭位置监控。

我使用这个后台权限来监控运动数据,每当它改变到automotive一定的置信度阈值时,我就会将位置数据质量提高到最好的水平,并尽快将其存储到磁盘中。当运动芯片报告walking或其他一些非汽车活动时,表明汽车会话已经结束,我提示用户打开应用程序填写其他详细信息(这是一个用于税收目的的驾驶跟踪器)。当用户打开应用程序时,我从地图提供商那里提取火车轨道数据,并运行一个快速的“算法”来检测汽车活动是否与任何火车轨道相关。如果它有一定的信心,我会丢弃数据,因为我不需要它,但这是你应该做的。

我从我的国家政府那里获得了我的火车轨道数据,因为它是开放的,但我想其他地图提供商也有这些数据。

希望这对您有所帮助,对不起,我无法提供预烘焙服务!

于 2018-06-14T07:47:50.283 回答