ios重要的位置更改,暂停后的UIBackgroundModes和应用启动

时间:2017-09-23 22:35:03

标签: ios swift location cllocationmanager uibackgroundmode

修改

我的应用应该在前台,后台和暂停时识别出重要的位置变化和区域变化。当allowBackgroundLocationUpdates设置为true并且UIBackgroundMode" location"在Info.plist中设置

Apple在app评论中写道,我的应用程序没有需要连续位置跟踪的功能,而且UIBackgroundMode" location"不需要。苹果是对的,因为我只需要重要/区域检测。所以我们应该禁用UIBackgroundMode" location"。但是当我这样做时,我必须将allowsBackgroundLocationUpdates设置为false并禁用重新启动。

如何在不设置UIBackgroundMode" location"?

的情况下启用重要的位置更改和区域监控重新启动

我在Apple文档中找到的内容:

  

讨论

     

希望在挂起时接收位置更新的应用必须在其应用的Info.plist文件中包含UIBackgroundModes键(带位置值),并将此属性的值设置为true。后台更新需要存在具有位置值的UIBackgroundModes键;您使用此属性根据应用程序的行为启用和禁用该行为。例如,只有在用户在应用程序中启用需要进行后台更新的功能后,才可以将值设置为true。

     

当此属性的值为false时,应用程序会根据其当前授权在前台或后台运行时正常接收位置更新。更新仅在应用程序暂停时停止,从而阻止应用程序被唤醒以处理这些事件。

     

此属性的默认值为false。将值设置为true但在应用程序的Info.plist文件中省略UIBackgroundModes键和位置值是程序员错误。

更新16.10.2017

我刚刚在一部真正的手机上测试了这个。并且allowBackgroundLocationUpdates设置为false,应用程序仍然从sdk11,ios 10.3.1上的suspend重新启动。这与文档不同,但我的问题现在已经解决了。 -

0 个答案:

没有答案