我一直在使用ios上的重要事件位置管理器,但它似乎并不像声称的那样基于单元格更改。
我使用了一个使用重要位置事件的简单应用程序,但无法从ios sdk获得可重复、一致或敏感的响应。
我在下面的地图上标出了路线(蓝线)、蜂窝塔(地标)和1000平方米的网格(蓝色方格)。地图显示路线
这条路线距离5000米。
我开了三次车。
在你抱怨我的测试太小之前,我已经监视其他测试路线好几天了,所有的测试都显示出不一致的形状。
我原以为sig事件是基于手机塔交换的。因此,我使用了一个名为“信号”的越狱应用程序来识别活动细胞。(NB.it令人惊讶的是哪个细胞是活跃的。不是我所期望的那样。
从监测“信号”的应用,细胞改变了6-7倍,从我注意到。
然而,我没有收到6-7的sig事件。所以我看不出细胞转换和重大事件之间有任何关联。
所以我有以下问题
这是在测试应用程序中运行的代码。
-(void)initLocationManager {
if (locationManager == nil) {
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startUpdatingLocation];
[locationManager stopUpdatingLocation];
[locationManager startMonitoringSignificantLocationChanges];
}
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self initLocationManager];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
NSLog(@"%@", newLocation);
[[NSNotificationCenter defaultCenter]
postNotificationName:@"PositionUpdate" object:nil];
}-lp
发布于 2011-06-19 09:27:31
重要的位置更改是由iOS决定的,您无法直接更改它们的粒度。请注意,只有在iOS 4中才使用单元塔位置。未来版本的操作系统将改进这一点。
但作为一种解决办法,当应用程序被唤醒/启动时,您可以打开普通的CoreLocation位置更新。然后,一旦你有了完美的结果,再禁用位置监控,让应用程序回到冬眠。
发布于 2011-07-11 06:39:20
我刚刚用我的应用在旧金山市中心做了一次3公里的测试,并且没有任何重大的位置变化事件。我在我的应用程序中切换到了使用kCLLocationAccuracyHundredMeters进行正常轮询,并在相同的距离内获得了40+事件。
与这里和其他地方的其他各种答案相呼应的是,我在iOS 5之前一直坚持做出重大改变。我认为,现在最好的做法是让你自己的业务逻辑来调查旧的核心定位方式,并随着时间的推移逐渐降低频率(或其他一些东西),使电池变得更友好。
在iOS 4中,与在哪个街区(甚至邮政编码)相比,重要的更改更适合于区分您所在的通勤区的哪一端。
发布于 2011-06-19 09:47:16
我不确定您是否已经看过了--但是WWDC 2010会话115 (在iOS中使用核心位置)可能会让您更好地了解重要的位置更改API。
https://stackoverflow.com/questions/6379521
复制相似问题