我想要求用戶啓用常規位置服務(而不是特定於應用的位置服務),如果作爲一個整體,他們從未提示爲應用啓用它。提示使用普通iOS位置服務
有沒有辦法提示用戶每次打開應用程序時都會打開位置服務並將其禁用?
代碼在其他線程發現,但它是應用特定的,不是一般的定位服務:
if(![CLLocationManager locationServicesEnabled]) {
NSLog(@"Location Services is OFF GLOBALLY");
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Location Services", @"") message:NSLocalizedString(@"Please Set Location Services to On and Restart App\n\nSettings->Privacy->Location Services", @"") preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"OK", @"") style:UIAlertActionStyleDefault handler:nil];
[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];
}
else if([CLLocationManager authorizationStatus] == kCLAuthorizationStatusDenied) {
NSLog(@"Location Services is Never for App");
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"App Needs Location Services", @"") message:NSLocalizedString(@"Please Set Location Services to Always for App", @"") preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *settingsAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Settings", @"") style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
[alertController addAction:settingsAction];
[self presentViewController:alertController animated:YES completion:nil];
}
爲什麼?您只需要特定於應用程序的設置。 – rmaddy
也許如果你分享你真正想要完成的事情,我們可以提供更好的幫助,因爲沒有理由提醒用戶完全啓用定位服務,如果你的應用程序不會要求使用它的權限。 – RyanR
您可以檢查「CLLocationManager.locationServicesEnabled」的值,並在停用位置服務時顯示警報,但無法直接打開位置服務首選項。 – Paulw11