2016-09-21 294 views
0

我正在开发一个需要访问用户的位置和日历的应用程序,弹出窗口应该出现,但由于某种原因,它不显示,我不断得到拒绝,这里是日历的代码访问:弹出窗口不显示

- (void)askAuthorization 
{ 

    EKAuthorizationStatus authorizationStatus = [EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]; 
    BOOL needsToRequestAccessToEventStore = (authorizationStatus == EKAuthorizationStatusNotDetermined); 

    if (needsToRequestAccessToEventStore) { 
     [self.store requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) { 
      if (granted) { 
       // Access granted 
       NSLog(@"User granted access"); 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [self.delegate userDidAuthorizeCalendarReadingsWithError:error]; 
       }); 

      } else { 
       // Denied 
       NSLog(@"User did not grant access. To grant access, go to Settings > Privacy > Calendars > VirtualAssitant"); 
       [self.delegate userDidNotAuthorizeCalendarReadingsWithError:error]; 
       dispatch_async(dispatch_get_main_queue(), ^{ 
        [self.delegate userDidAuthorizeCalendarReadingsWithError:error]; 
       }); 

      } 
     }]; 
    } 

}

,我没有得到一个弹出和AuthorizationStatusForEntityType:EKEntityTypeEvent值是 “拒绝”!

至于位置我去设置 - >与隐私>的位置,发现它设置为从不为我的申请,我不得不手动将其更改为始终。 有谁知道为什么或已经通过相同的问题,并可以帮助我。

我试图清理build文件夹和正在重置地点和隐私设置,但是当我重建我的应用同样的事情发生,我没有得到一个弹出询问权限和值设置为拒绝!

回答

0

的权限弹出像相机,相册,地点,联系人等任何系统访问...只会出现一次(每个接入类型)。

一旦它被呈现,然后被接受或拒绝,那么它将永远不会再出现。

因为它已经回来了与许可“被拒绝”,这意味着它已经出现了,你拍了拍“不允许”。

更改权限的应用程序后,即进入应用程序设置和手动更改的唯一办法。

您可以通过从设备上删除应用程序并再次安装应用程序,强制弹出权限弹出窗口。

+0

我也试着从设备上删除应用程序并重新安装,我得到了同样的问题,我甚至在不同的设备上尝试过,但没有弹出窗口显示,值始终被拒绝。 – Lara