ios - CMMotionActivity 详述汽车以区分汽车和火车

标签 ios core-motion cmmotionmanager

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

仅使用 CoreMotion 是不可能的,所以我认为有必要使用第 3 方服务,例如云服务或第 3 方框架。

有人遇到过同样的问题吗? 谢谢

最佳答案

我前段时间遇到了同样的问题。长话短说,这对现有的任何事物来说几乎是不可能的。不过,自己烤并不难。这是我解决它的方法-

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

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

我的火车轨道数据是从我所在国家/地区的政府那里获得的,因为它是开放的,但我想其他 map 提供商也可以使用这些数据。

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

关于ios - CMMotionActivity 详述汽车以区分汽车和火车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50852082/

相关文章:

ios - CMMotionActivityManager 无法检测到汽车模式

ios - 为什么 CMMotionManager 更新间隔在 iOS 10 中变慢

iphone - iOS中多个CMMotionManager冲突如何解决?

ios - CMMotionManager - 如何检测忽略小 Action 的步骤?

ios - CoreData "forgets"NSOrderedSet关系的顺序

ios - 应用程序退出 Cordova 时会发生什么事件?

ios - 为什么CMMotionManager在停止和重新启动后报告不正确的yaw?

ios - 如何使用 CMMotionActivityManager 并接收更新?

ios - 插入蓝牙耳机时 AVAudioEngine 使用错误的格式

IOS 'NSInvalidArgumentException',原因: 'data parameter is nil'