0

我正在更新我的应用程序以使用 CNContacts 而不是 AB。我注意到没有提示我向我的联系人授予权限。在下面的开关中,它正确地告诉我我被拒绝访问 - 但它并没有提示我授予它访问权限。此外,它只显示选择器,甚至将所选属性存储到我正在填充的表格视图中......

从通讯录中获取电话号码或电子邮件是否不需要获得许可?如果我是“.Denied”,我很困惑为什么我的代码似乎在工作

//This code is called when you hit the "add a contact" button on my UI
switch CNContactStore.authorizationStatusForEntityType(.Contacts){
    case .Authorized:
        print("Already authorized")
        presentPicker()
        /* Access the address book */
    case .Denied:
        print("Denied access to address book")

        store.requestAccessForEntityType(.Contacts){succeeded, err in
            guard err == nil && succeeded else{

                return
            }
            self.presentPicker()
        }


    case .NotDetermined:

        store.requestAccessForEntityType(.Contacts){succeeded, err in
            guard err == nil && succeeded else{

                return
            }
        self.presentPicker()
        }
    default:
        print("Not handled")
    }
4

1 回答 1

1

您无需授权即可使用 CNContactsPickerViewController。它是“进程外”;它只是工作。实际上,它是位于您的应用程序中的通讯录应用程序——用户不需要获得使用通讯录应用程序的权限。

于 2015-10-05T18:24:39.457 回答