我正在开发一个需要同时访问用户位置和日历的应用,应该会出现弹出窗口但由于某种原因它没有显示而且我一直被拒绝,这里是日历访问的代码:
- (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
值被拒绝"!
至于我去设置的位置 - >与隐私>位置,发现它从未设置为我的应用程序,我不得不手动将其更改为始终。 有谁知道为什么或已经遇到同样的问题,可以帮助我。
我尝试清理构建文件夹并重置位置和隐私设置,但是当我重建我的应用程序时,同样的事情发生了我没有弹出请求权限并且值被设置为拒绝!
答案 0 :(得分:0)
任何系统访问权限(如相机,相册,位置,联系人等)的弹出权限只会出现一次(对于每种访问类型)。
一旦它被呈现然后被接受或拒绝,它将永远不会再出现。
因为它已获得许可并且被拒绝"这意味着它已经出现,你点击了#34;不允许"。
之后更改应用权限的唯一方法是进入应用设置并手动更改。
您可以通过从设备中删除应用然后重新安装来强制再次显示权限弹出窗口。