【问题标题】:Can you change Iphone's Privacy Settings programmatically in iOS7 or iOS8您可以在 iOS 7 或 iOS 8 中以编程方式更改 Iphone 的隐私设置吗
【发布时间】:2015-08-19 05:09:52
【问题描述】:

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

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

【问题讨论】:

  • 是的,您可以这样做,只要在您的应用偏好设置中禁用它,不要使用可能正在初始化您的服务的位置或后台刷新代码。但是如果没有通过设置禁用后台刷新,它将尝试调用。
  • 你好 Nupur,我的回答有帮助吗?

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


【解决方案1】:

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

但如果用户第一次拒绝它,根据操作系统,用户更愿意拒绝该特定应用的位置服务,这是用户隐私。 由于Apple非常关心用户的隐私设置,用户若要再次接受这些设置,需要在设置App中再次显式启用,无法从App层面实现。 因为它与应用程序及其纯操作系统无关,作为开发人员,我们无法覆盖它。

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

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]];
}

【讨论】:

  • 谢谢,这很有道理
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-09
  • 1970-01-01
  • 2014-01-26
  • 2013-10-13
  • 2013-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多