ios - iOS 6 上 "Region Monitoring"的精度

标签 ios location ios-simulator region cllocation

我正在尝试制作一个基于位置的应用程序,该应用程序需要在打开后不断更新位置。我一直在寻找一种在应用程序关闭时将位置保留在后台的方法,但我发现这不是最好的方法,因为它会很快耗尽任何 iPhone 的电池电量。

长话短说,我发现“区域监控”,据我所知,它们与 Apple 用于其应用程序“提醒”的相同,后者也适用于位置。然后我使用该选项来测试我的应用程序,我意识到在模拟器中“从不”进入方法“didEnterRegion”,尽管它已正确创建:

-(void) locationManager: (CLLocationManager *) manager didEnterRegion: (CLRegion *) region
 {
     NSLog (@ "entering the region");
     CLLocation * location1 = manager.location;
     CLLocation * location2 = [[CLLocation alloc] initWithLatitude: latitud.doubleValue longitude: longitud.doubleValue];
 }

我终于意识到调用了该方法,但只有当我离开大部分区域并返回该区域时,才表明它不起作用,因为我已经在那个位置(所有这些都在模拟器中),奇怪的是事实并非如此,模拟器的位置距离监控区域数英里!这让我认为这是精度问题,尽管创建半径为 50 或 100 米的区域正在传播 3 或 4 公里,所以我没用。

有没有人经历过这个知道iOS 6模拟器是否有这个错误或者精度问题?我还没有开发人员许可,无法直接在我的 iPhone 上进行测试,而且我还不想购买它,因为我的应用程序还远未完成,我非常感谢有关此主题的任何帮助。

提前致谢。

最佳答案

我建议进行实际的地面测试。区域监测精度因测试地点不同而有很大差异。

第二种选择是使用区域监控来唤醒应用程序并启动标准定位服务。为此,您需要获得在后台运行该应用程序的权限。苹果可能不会批准这一点。我们的应用使用这种方法被拒绝了。

关于ios - iOS 6 上 "Region Monitoring"的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13984505/

相关文章:

iphone - 如何在 Xcode 中一次在多个目的地上 'Build & Run'?

ios - 错误 : Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."

有关 Instruments 工具的 iOS 问题、我的应用程序中的内存问题

ios - 获取没有括号的值

java - Android - LocationManager 小数点后的数字

android - GPS 卫星设置在我的 android 设备中不可用。 HTC ONE 4.4 API 19

ios - 将值设置为 SWIFT 中的计算属性

ios - UI 测试手动通过,自动运行时失败

ios - CLGeocoder CompletionHandler

ios - Xcode 8 Storyboard错误