在后台和模拟器中的位置
Posted
技术标签:
【中文标题】在后台和模拟器中的位置【英文标题】:Location in background and simulator 【发布时间】:2013-01-05 06:42:39 【问题描述】:我需要让应用程序每 1 秒使用一次精确坐标。 我知道电池消耗 - 这个应用程序只能在电源上运行(车内的电线)。 但是我需要经常使用不是有效的,而是高精度的坐标(并且在后台,因为此时使用导航程序)。
我从一些关于后台核心定位的文章中尝试了很多例子。 我做 CLLocationManagerDelegate 的代表 制作函数 locationManager:didUpdateToLocation:fromLocation: 在 .plist 中写入背景模式:位置 在我的日志中,我看到了坐标。 但是当我点击主页按钮时 - 一切都停止了。 我在 5 分钟内获得一次后台模式下的坐标。 是模拟器的应用问题还是功能问题?
我从 github 等编译并启动一些示例 - 一切都一样
我还没有 iPhone - 因为购买或不购买取决于“我可以编写这个应用程序”。 在 android 中,这真的很容易——我制作位置监听器和服务——并每秒获取坐标。
更新: 我用这个例子: http://mobile.tutsplus.com/tutorials/iphone/ios-multitasking-background-location/
2013-01-05 11:26:41.162 BackgroundLocationTrackingExample[3402:f803] Latitude: 37.331504 Longitude: -122.030716
2013-01-05 11:26:42.166 BackgroundLocationTrackingExample[3402:f803] Latitude: 37.331464 Longitude: -122.030721
2013-01-05 11:26:43.148 BackgroundLocationTrackingExample[3402:f803] Latitude: 37.331426 Longitude: -122.030728
2013-01-05 11:26:44.161 BackgroundLocationTrackingExample[3402:f803] Latitude: 37.331388 Longitude: -122.030728
2013-01-05 11:26:45.172 BackgroundLocationTrackingExample[3402:f803] Latitude: 37.331351 Longitude: -122.030735
按下主页键
2013-01-05 11:30:35.147 BackgroundLocationTrackingExample[3402:f803] Latitude: 37.330071 Longitude: -122.021223
2013-01-05 11:35:35.176 BackgroundLocationTrackingExample[3402:f803] Latitude: 37.324633 Longitude: -122.024034
2013-01-05 11:40:36.153 BackgroundLocationTrackingExample[3402:f803] Latitude: 37.330647 Longitude: -122.030024
etc
【问题讨论】:
【参考方案1】:允许后台位置更新:
• 转到 Info.plist
• 添加新行
• 调用行“UIBackgroundModes”
• 在该行中调用“位置更新”
您已完成但请记住后台位置会杀死电池寿命:)
【讨论】:
另外你需要在你的项目描述中添加这个,该应用程序会耗尽你的设备电池 确实在描述中一定要提到你的应用是在后台运行的(否则应用会被拒绝)。 确保代码中没有 [locationmanger startMonitoringSignificantLocationChanges];此代码不允许在 iOS 中进行精确的位置更新。以及您如何检测电池更换,因为模拟器无法检测到电池是否插入(仅限真实设备)。以上是关于在后台和模拟器中的位置的主要内容,如果未能解决你的问题,请参考以下文章