我正在更新我的应用以使用CNContacts而不是AB。我注意到我没有被提示授予我的联系人权限。在下面的开关中,它正确地告诉我我被拒绝访问 - 但它没有提示我给它访问权限。此外,它只显示选择器,甚至将所选属性存储到我正在填充的tableview中......
是否不需要获取从联系人中获取电话号码或电子邮件的权限?我很困惑,为什么我的代码似乎工作,如果我是“.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")
}
答案 0 :(得分:1)
您无需使用CNContactsPickerViewController的授权。这是"在过程中&#34 ;;它只是工作。实际上,联系人应用程序位于您的应用程序中 - 并且用户不需要使用“联系人”应用程序的权限。