【发布时间】:2015-07-16 17:26:57
【问题描述】:
我们正在尝试创建一个应用程序,当手机存在信标/iBeacon 时,该应用程序会记录旅程的 GPS 日志。例如,如果您将信标放在汽车中,那么您的所有汽车行程都会被自动记录。
但是,我们立即遇到了问题。如果我们在前台使用应用程序记录旅程,一切正常。但是,如果我们从 DidRangeBeacons() 回调开始记录旅程,我们似乎只获得了 10 秒的数据,然后应用程序被暂停。我们已将所需的属性放在 Info.plist 文件中:
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
此外,该应用程序已正确注册以允许在后台运行时进行位置监控(并在必要时调用 locMgr.RequestAlwaysAuthorization()),并且在 iOS 的位置隐私屏幕上一切正常。
似乎有什么东西阻止了操作系统识别应用程序有权在后台跟踪位置。或者我们可能通过直接从 DidRangeBeacons() 回调中调用 CLLocationManager.StartUpdatingLocation() 以错误的方式启动位置监控。
我们可以做些什么来绕过我们似乎达到的 10 秒限制?
我们在这种情况下使用 Xamarin,但我确信如果我们在 Objective C 中我们会遇到同样的问题,因为我怀疑这是滥用 API 的设计问题,因此任何帮助或代码示例来自任何一个平台都会有用。
【问题讨论】:
标签: ios iphone xamarin core-location ibeacon