在后台和模拟器中的位置

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 中进行精确的位置更新。以及您如何检测电池更换,因为模拟器无法检测到电池是否插入(仅限真实设备)。

以上是关于在后台和模拟器中的位置的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 模拟器上将应用程序启动到后台?

vb后台模拟鼠标点击网页

如何在iphone的后台获取位置[关闭]

mapView 中的用户位置未显示在多个模拟器设备(MapKit)上

如何在ios中每n秒获取一次位置更新

如何在模拟器中获取 ios 中的当前位置?