gpt4 book ai didi

ios - 检查权限而不被系统询问

转载 作者:行者123 更新时间:2023-11-29 02:22:15 26 4
gpt4 key购买 nike

我希望我的应用检查它是否有权使用设备联系人。

这是我正在使用的代码:

- (void)isContactsAutherizedWithCompletion:(void(^)(BOOL granted))completion {
self.addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);

ABAddressBookRegisterExternalChangeCallback(self.addressBookRef, MyAddressBookExternalChangeCallback, (__bridge_retained void *)self);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(self.addressBookRef, ^(bool granted, CFErrorRef error) {
if (granted) {
completion(YES);
} else {
completion(NO);
}
});
} else if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusAuthorized) {
completion(YES);
} else {
completion(NO);
}
}

但是使用这段代码,系统会自动询问我是否要授予权限。我不想被问到,我只想知道它是否有权限。

谁有解决办法?

谢谢

最佳答案

基于权限的访问有三种状态。

  1. 您已被授予访问权限。
  2. 您已被拒绝访问。
  3. 尚未询问用户。

当您第一次打开应用程序并尝试访问需要权限的内容时,它会询问。没有办法解决这个问题。

如果您获得许可,那么它就不会再询问并且它会起作用。

如果您被拒绝访问,那么它也不会再次询问,并且请求将失败。

每个系统只会询问用户一次。这就是它的工作原理。

在本例中,它处于状态 3。因此它既没有也没有权限。因此检查无法完成。它必须处于状态 1 或 2 才能确定应用程序是否具有权限。

即这里一切似乎都工作正常。

关于ios - 检查权限而不被系统询问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28010385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com