1

如何在 iOS 6 及更高版本中访问联系人?我认为它需要一些许可。谁能告诉我如何以编程方式请求许可?

4

2 回答 2

4
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

于 2013-02-18T13:39:09.030 回答
0

一旦您尝试从代码访问地址簿,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  
}
于 2013-02-18T13:33:48.283 回答