弹出请求访问联系人不显示ios 9

时间:2015-10-15 07:32:21

标签: ios

我从地址簿中提取联系人,但弹出窗口未显示以请求访问联系人的权限。它会自动被拒绝,但是当我在演示中尝试相同的代码时,它运行正常,但它不能在我的应用程序中运行。 我读了很多文章,但我没有得到任何解决方案。我是否在plist或设置中遗漏了一些东西。

CNContactStore * contactStore = [[CNContactStore alloc]init];

    if ([CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts] == CNAuthorizationStatusNotDetermined) {
        [contactStore requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * __nullable error) {

            if (granted==YES)
            {


            }
            else
            {
                NSLog(@"Error");
            }
        }];
    }

或第二种方法

 CFErrorRef error = nil;
    ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, &error);

    if (ABAddressBookGetAuthorizationStatus() == kABAuthorizationStatusNotDetermined) {

    ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error)
     {
         if (error)
         {
             NSLog(@"error %@", error);
         }
         else if (granted)
         {

}
         CFRelease(addressBook);
     });

    }

3 个答案:

答案 0 :(得分:3)

我今天也遇到了这个问题,我从Info.plist中删除了一些密钥:

<key>CFBundleDisplayName</key>
<string></string>
<key>LSApplicationCategoryType</key>
<dict/>
<key>CFBundleGetInfoString</key>
<string></string>

现在有效。有线外壳。

答案 1 :(得分:1)

在info.plist中输入我的应用程序名称“Bundle display name”键允许我的应用程序显示访问我的联系人的请求。

答案 2 :(得分:0)

我有同样的问题。科迪的回答让我尝试了这个对我有用的。

在您的Info.plist中,对于密钥&#34;捆绑显示名称&#34;,请确保它不是空字符串。提示输入联系人权限时使用此名称。