0

我正在制作一个与 iOS5 兼容的应用程序,并且我想在访问用户联系人列表之前获得许可。在 iOS6 中我可以做到这一点,但在 iOS5 中我还没有找到任何代码。我正在使用它来访问联系人列表 -

ABAddressBookRef addressBook = ABAddressBookCreate();
    CFArrayRef all = ABAddressBookCopyArrayOfAllPeople(addressBook);
    CFIndex n = ABAddressBookGetPersonCount(addressBook);

    for( int i = 0 ; i < n ; i++ )
    {
        ABRecordRef ref = CFArrayGetValueAtIndex(all, i);
        ABMultiValueRef *phones = ABRecordCopyValue(ref, kABPersonPhoneProperty);
        for(CFIndex j = 0; j < ABMultiValueGetCount(phones); j++)
        {


            CFStringRef phoneNumberRef = ABMultiValueCopyValueAtIndex(phones, j);
            //CFRelease(phones);
            NSString *phoneNumber = (__bridge NSString *)phoneNumberRef;
            CFRelease(phoneNumberRef);
            // NSString *s = @"foo/bar:baz.foo";
            NSCharacterSet *doNotWant = [NSCharacterSet characterSetWithCharactersInString:@"+- *#( )"];
            phoneNumber = [[phoneNumber componentsSeparatedByCharactersInSet: doNotWant] componentsJoinedByString: @""];

            NSLog(@"phone number new %@", phoneNumber);


        }
    }

请建议如何做到这一点。

4

1 回答 1

2

由于地址簿权限要求是最近才在 iOS 6 中添加的,因此您无需请求权限。

如果您仍然想这样做,那么您只需显示一个 UIAlertView 并在 NSUserDefaults 中记录用户的选择。

请注意,如果用户从 iOS 5 升级到 6,他会再次被询问,因此在这种情况下您必须禁用您的 iOS 5 权限对话框。

于 2013-01-02T06:48:03.903 回答