【问题标题】:How to give permission to access phone Addressbook in ios 10.0?如何在 ios 10.0 中授予访问电话通讯录的权限?
【发布时间】:2016-09-21 07:53:53
【问题描述】:

此应用已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用的 Info.plist 必须包含一个 NSContactsUsageDescription 键和一个字符串值,向用户解释应用如何使用这些数据。

我添加到.plist NSContactsUsageDescription

不起作用 - 设备版本:10.0

KTSContactsManager *addressBookManager = [KTSContactsManager sharedManager];
addressBookManager.delegate = self;
addressBookManager.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"firstName" ascending:YES]];

if ([isAddressBookTaken isEqualToString:@"false"]) {
    [addressBookManager importContacts:^(NSArray *contacts) {
        [EBLogger logWithTag:@"TBLContactManager" withBody:@"importContacts"];

        DLPhoneBook *phoneBook = [DLPhoneBook new];
        NSMutableArray *mutableArray = [NSMutableArray new];

        for (int i = 0; i < contacts.count; ++i) {
            NSDictionary *record = [contacts objectAtIndex:i];
            NSError *err = nil;
            DLContactRecord *contactRecord = [[DLContactRecord alloc] initWithDictionary:record error:&err];

            NSLog(@" %@ %@ %@ '",contactRecord.firstName, contactRecord.lastName, contactRecord.id);
         }
    }

【问题讨论】:

    标签: ios10 xcode8


    【解决方案1】:

    您必须在您的 plist 中添加信息列表,

    这里是各种隐私的信息列表。

    在您的 plist 中添加您想要的隐私并再次检查。

    并将此代码添加到您的文件中,

    - (void)viewDidLoad {
        [super viewDidLoad];
        contactList=[[NSMutableArray alloc] init];
        ABAddressBookRef m_addressbook = ABAddressBookCreate();
    
        if (!m_addressbook) {
            NSLog(@"opening address book");
        }
    
        CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(m_addressbook);
        CFIndex nPeople = ABAddressBookGetPersonCount(m_addressbook);
    
        for (int i=0;i &lt; nPeople;i++) { 
            NSMutableDictionary *dOfPerson=[NSMutableDictionary dictionary];
    
            ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);
    
            //For username and surname
            ABMultiValueRef phones =(NSString*)ABRecordCopyValue(ref, kABPersonPhoneProperty);
            CFStringRef firstName, lastName;
            firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
            lastName  = ABRecordCopyValue(ref, kABPersonLastNameProperty);
            [dOfPerson setObject:[NSString stringWithFormat:@"%@ %@", firstName, lastName] forKey:@"name"];
    
            //For Email ids
            ABMutableMultiValueRef eMail  = ABRecordCopyValue(ref, kABPersonEmailProperty);
            if(ABMultiValueGetCount(eMail) &gt; 0) {
                [dOfPerson setObject:(NSString *)ABMultiValueCopyValueAtIndex(eMail, 0) forKey:@"email"];
    
            }
    
            //For Phone number
            NSString* mobileLabel;
            for(CFIndex i = 0; i &lt; ABMultiValueGetCount(phones); i++) {
                mobileLabel = (NSString*)ABMultiValueCopyLabelAtIndex(phones, i);
                if([mobileLabel isEqualToString:(NSString *)kABPersonPhoneMobileLabel])
                {
                    [dOfPerson setObject:(NSString*)ABMultiValueCopyValueAtIndex(phones, i) forKey:@"Phone"];
                }
                else if ([mobileLabel isEqualToString:(NSString*)kABPersonPhoneIPhoneLabel])
                {
                    [dOfPerson setObject:(NSString*)ABMultiValueCopyValueAtIndex(phones, i) forKey:@"Phone"];
                    break ;
                }
    
            [contactList addObject:dOfPerson];
            CFRelease(ref);
            CFRelease(firstName);
            CFRelease(lastName);
        }
        NSLog(@"array is %@",contactList);
        }
    }
    

    欲了解更多信息,请访问,

    http://sugartin.info/2011/09/07/get-information-from-iphone-address-book-in-contacts/

    希望对你有所帮助。

    【讨论】:

    • 嗨@KAR 感谢您的回答,我按照您的解释做了,但我一直收到同样的错误。我还删除了应用程序和驱动数据文件。
    • 如果对您有用,请查看此链接,forums.developer.apple.com/thread/62229
    • + 设置 > MyApp > “联系人”没有出现!
    猜你喜欢
    • 2020-05-07
    • 2018-09-04
    • 1970-01-01
    • 2018-12-20
    • 1970-01-01
    • 2014-05-06
    • 2022-11-02
    • 2020-05-15
    • 2021-02-28
    相关资源
    最近更新 更多