繁体   English   中英

CLActivityType值之间的差异 - iOS SDK

[英]Difference between CLActivityType values - iOS SDK

这些值之间有什么区别:

CLActivityTypeAutomotiveNavigation,
CLActivityTypeFitness,
CLActivityTypeOtherNavigation,

当分配给CLLocationManager activityType属性时?

文档建议我应该根据我使用CLLocationManager的目的使用它们,但是我没有提供关于确定暂停位置更新的算法差异的提示。

从文档引用:

CLActivityTypeAutomotiveNavigation

[...]此活动可能会导致仅在车辆长时间不移动时暂停位置更新。

CLActivityTypeFitness

[...]此活动可能仅在用户未在一段时间内移动很长的距离时才会暂停位置更新。

CLActivityTypeOtherNavigation

此活动可能仅在车辆在一段时间内没有移动很长的距离时才会暂停位置更新。

我真的看不出这些描述之间的区别。

文档来源:

https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/#//apple_ref/c/econst/CLActivityTypeOther

似乎activityType仅在监控位置时影响电池性能。 特别是当它暂停投票地点时。

将暂停轮询时

AutomotiveNavigation -在不长的时间移动

OtherNavigation (例如船/火车) - 长时间内移动不多

Fitness - 在较短的时间内不会移动很多。

Other - 据推测不会停止投票。

理由是

  • 对于船只或火车,它们可能已停止,但你仍然可以在它们内部走动,所以你并不真正关心这些小的更新。

  • 对于健身,你可能已经停止了跑步,但你仍然在你家里四处走动...你真的不想让你的电池耗尽。

其他说明

pausesLocationUpdates的文档自动进一步表明activityType仅确定是否应自动暂停位置更新。

您可以通过为activityType属性指定值来帮助确定何时暂停位置更新。

根据Robert的回答和Apple官方文档的规定, activityType不仅影响电池寿命,它还可能影响在特定条件下返回的坐标可能被“捕捉”到最近的道路的方式。

简而言之,如果您没有使用活动类型“其他导航”,并且位置变化很快(=您在车辆上足够快),并且某种程度上您的手机能够通过互联网获得所需信息或本地缓存,管理员报告的位置将不准确,因为它们将“捕捉”到最近的道路。

自iOS 6以来,已针对iOS的所有版本报告此问题。如果在整个系统上运行的任何位置管理器实例设置的活动类型不是“其他导航”,则问题似乎也会出现:注意该属性的默认值为“other”,与“其他导航”不同。

一些参考:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM