【发布时间】:2013-02-02 22:52:41
【问题描述】:
如何在 iOS 6 及更高版本中访问联系人? 我认为它需要一些许可。 谁能告诉我如何以编程方式请求权限?
【问题讨论】:
如何在 iOS 6 及更高版本中访问联系人? 我认为它需要一些许可。 谁能告诉我如何以编程方式请求权限?
【问题讨论】:
当您尝试通过代码访问通讯录时,iOS 会立即要求用户进行访问。
您无法请求许可,因为 iOS 会为您处理。
您可以使用ABAddressBookGetAuthorizationStatus 方法检查权限状态,您需要将AddressBook.framework 添加到您的项目中,并将#import <AddressBook/AddressBook.h> 添加到您要使用的.h 或.m 文件中方法。
ABAuthorizationStatus status = ABAddressBookGetAuthorizationStatus();
if(status == kABAuthorizationStatusDenied) {
// User has reject your request to access the address book
}
【讨论】:
AddressBookUI.framework 并没有错,您只需打开ABPeoplePickerNavigationController,它就会为您请求访问权限。\
AddressBookUI:Could anyone tell me how to request for permission programmatically?
ABAddressBookRef addressBookRef = ABAddressBookCreateWithOptions(NULL, NULL);
if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {
ABAddressBookRequestAccessWithCompletion(addressBookRef, ^(bool granted, CFErrorRef error) {
if (granted) {
NSLog(@"Access granted!");
} else {
NSLog(@"Access denied!");
}
});
}
编辑:
这个答案稍微详细一点:https://stackoverflow.com/a/12648938/322548
【讨论】: