在iPhone应用程序中进行位置监控

时间:2013-12-05 09:33:29

标签: iphone cllocationmanager

我是iphone app开发的新手。我想在不使用GPS但仅使用Cell Tower信息和Wifi数据的情况下捕获位置信息。为了实现这一点,我使用CLLocationManager来捕获位置信息,

 self.locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
[locationManager startMonitoringSignificantLocationChanges];

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {

CLLocation *newLocation = [locations lastObject];
float latitude = newLocation.coordinate.latitude;
float longitude = newLocation.coordinate.longitude;
NSTimeInterval timeStamp = [[NSDate date] timeIntervalSince1970];
// NSTimeInterval is defined as double
NSNumber *timeStampObj = [NSNumber numberWithDouble: timeStamp];
NSLog(@"latitude %f and longitude %f", latitude, longitude );
NSLog(@"%d", [timeStampObj integerValue]);
NSMutableArray *numArray = [[NSMutableArray alloc]initWithObjects:[NSNumber numberWithDouble:latitude],[NSNumber numberWithDouble:longitude], timeStampObj,  nil];    
}

当我在启动应用程序时使用上述代码时,我看到应用程序请求访问位置服务。一旦这被接受,我不确定应用程序是否正在使用GPS获取位置信息,因为我看到一个小箭头指出,这似乎是用GPS来获取位置信息,这不是我的意思要求。我希望仅使用WiFi和Cell Tower信息捕获位置信息。

此位置信息的更新频率也是如此,因为有一个位置的初始更新,即使在电话连续移动后我也看不到位置被修改。

1 个答案:

答案 0 :(得分:0)

如果您使用此:

[locationManager startMonitoringSignificantLocationChanges];

当发生重大变化时(例如,当您从电话塔移动到其他电话塔时),您只能获得GPS上传。

您无法选择是否要使用代码中的GPS或塔。