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 に答える