您可以在iOS7或iOS8中以编程方式更改Iphone的隐私设置

时间:2015-08-19 05:09:53

标签: ios objective-c iphone ios8 settings.bundle

我有一个使用位置服务和后台应用刷新的应用程序,我想在我自己的应用程序的“设置”页面中包含这两个首选项,以便用户可以在一个地方执行此操作,而不是转到设置应用程序。

在iOS7或iOS8中可以吗?我知道一些正在这样做的应用程序。

1 个答案:

答案 0 :(得分:0)

提示获取应用程序位置服务的初始警报由操作系统触发,而不是由应用程序触发。 这将触发,因为您在应用程序中启用了基于位置的设置。

但是如果用户第一次否认它,根据操作系统,用户更愿意拒绝该特定应用的位置服务,这是用户隐私。 由于Apple非常关注用户的隐私设置,要让用户再次接受这些设置,他们应该从设置应用程序再次明确启用它,并且无法从应用程序级别实现它。 因为它与应用程序及其纯粹基于操作系统无关,作为开发人员,我们无法覆盖它。

相反,我们可以检测用户当前的位置隐私设置,如果状态为无权访问,则可以提示用户在导航到设置应用后可以直接更改设置的警报。

if([CLLocationManager locationServicesEnabled]){

    if([CLLocationManager authorizationStatus]==kCLAuthorizationStatusDenied){
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:ICLocalizedString(@"LocationServicesPermissionTitle")
                                                message:ICLocalizedString(@"LocationPermissionGeoFenceMessage")
                                               delegate:self
                                      cancelButtonTitle:@"Settings"
                                      otherButtonTitles:nil];
        [alert show];
    }
}

UIAlertView委托:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{
    [alertView dismissWithClickedButtonIndex:buttonIndex animated:YES];
    [[UIApplication sharedApplication] openURL: [NSURL URLWithString: UIApplicationOpenSettingsURLString]];
}