我正在创建一个与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);
}
}
请建议如何执行此操作。
答案 0 :(得分:2)
由于地址簿权限要求最近才在iOS 6中添加,因此您无需请求许可。
如果您仍想这样做,那么您只需显示UIAlertView并在NSUserDefaults中记录用户的选择。
请注意,如果用户从iOS 5升级到6,则会再次询问,因此在这种情况下您必须禁用iOS 5权限对话框。