gpt4 book ai didi

iOS:如何检查地理位置是否仍处于打开状态?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:59 24 4
gpt4 key购买 nike

我在我的 iPhone 应用程序中使用地理位置。即使我使用地理定位几秒钟,或者如果应用程序在后台运行,电池耗电速度也会更快。

如何检查我的 iPhone 设备上的地理位置服务是否仍然打开?这是我使用的代码:

...

    locationManager = [[CLLocationManager alloc] init]; // Create new instance of locMgr
locationManager.delegate = self;

locationManager.distanceFilter = kCLDistanceFilterNone;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;


[locationManager startUpdatingLocation];
NSLog(@"locationManager startUpdatingLocation");

reverseGeocoder = [[MKReverseGeocoder alloc] initWithCoordinate:locationManager.location.coordinate];
reverseGeocoder.delegate = self;
[reverseGeocoder start];

}

...

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{


}


- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error
{
NSLog(@"reverseGeocoder failed: %@", [error localizedDescription]);

}

- (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
{
NSLog(@"locality %@", placemark.locality);
location = [placemark.locality retain];
}

最佳答案

要检查和查看哪些应用程序正在使用定位服务,请转到“设置”应用程序,在“定位服务”下,最近使用过它的应用程序旁边会出现一个灰色箭头,而正在使用它的应用程序旁边会出现一个紫色箭头.

enter image description here

为了减少电池使用量,只要您有足够好的位置满足您的需求,并且您的应用退出事件状态,您应该立即关闭 CLLocationManager:

-(void)appWillResignActive:(NSNotification*)notification
{
// pause GPS when not active to save battery
[locationManager stopUpdatingLocation];
}

在某处订阅通知,例如在您的 View Controller 中:

[[NSNotificationCenter defaultCenter] addObserver:self 
selector:@selector(appWillResignActive:)
name:UIApplicationWillResignActiveNotification object:nil];

关于iOS:如何检查地理位置是否仍处于打开状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7945185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com