相关疑难解决方法(0)

iOS - 如何使用ABSourceType搜索"可搜索"的ABSource kABSourceTypeSearchableMask

有没有人成功地使用ABAddressBook框架搜索链接到iOS设备的Exchange GAL中的名称,或者其他?

我已经设法从存储在设备上的联系人中获取所有名称 - 这很容易 - 但它不包括来自Exchange GAL的名称.

我还设法获得了GAL的ABSource.它的类型是:kABSourceTypeExchangeGAL = kABSourceTypeExchange | kABSourceTypeSearchableMask

这表明源是可搜索的,因为该kABSourceTypeSearchableMask位是set(kABSourceTypeSearchableMask = 0x01000000),但如何搜索它是任何人的猜测?文档几乎不存在.

下面列出了类似的stackoverflow问题,但没有一个为此提供解决方案.

ABAddressBookCopyArrayOfAllPeopleInSource(addressBook, sourceToSearch)总是为包含类型位的源返回一个空数组kABSourceTypeSearchableMask,这表示你必须按名称搜索,而不是返回"所有人",因为全局地址列表中可能有成千上万的人,所以我不会期待它全部归还.

通讯录应用程序允许您按名称搜索并仅显示匹配的内容.在"收件人:"文本字段中输入文本时,Mail应用程序也是如此.

search gal abaddressbook ios abaddressbooksource

19
推荐指数
1
解决办法
693
查看次数

如何使用ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering()从ExchangeGal源获取人数

我试图让我的iOS 4地址簿的三个来源(1个MobileMe源和2个*ExchangeGAL源)的人.
NSLog语句总是为ExchangeGAL返回0个人,但返回MobileMe的人数.
通过使用ABAddressBookCopyArrayOfAllSources(addressBook)获取iOS通讯录中的所有源代码后,我尝试按源迭代源以获取每个源的更多信息.

我正确使用ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering吗?
期望在不同的地址簿来源中计算所有人.

-(void)countPeopleInSources
{
    ABAddressBookRef addressBook = ABAddressBookCreate();
    CFArrayRef allSources = ABAddressBookCopyArrayOfAllSources(addressBook);
    for (CFIndex i = 0; i < CFArrayGetCount(allSources); i++) 
    {
        ABRecordRef source = (ABRecordRef)CFArrayGetValueAtIndex(allSources, i);
        NSNumber *sourceTypeRef = (NSNumber *)((CFNumberRef)ABRecordCopyValue(source, kABSourceTypeProperty));
        ABPersonSortOrdering sortOrdering = ABPersonGetSortOrdering();
        int sourceType = [sourceTypeRef intValue];
        switch (sourceType) {
        case kABSourceTypeCardDAV:
            NSLog(@"SourceTypeCardDAV");
            break;
        case kABSourceTypeCardDAVSearch:
            NSLog(@"SourceTypeCardDAVSearch");
            break;
        case kABSourceTypeExchange:
            NSLog(@"SourceTypeExchange");
            break;
        case kABSourceTypeExchangeGAL:
            NSLog(@"SourceTypeExchangeGAL");
            break;
        case kABSourceTypeLDAP:
            NSLog(@"SourceTypeLDAP");
            break;
        case kABSourceTypeLocal:
            NSLog(@"SourceTypeLocal");
            break;
        case kABSourceTypeMobileMe:
            NSLog(@"SourceTypeMobileMe"); 
            break;
        default:
            break;
    } …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c ios abaddressbooksource

5
推荐指数
1
解决办法
2567
查看次数

从iOS 4+中的ABAddressBook获取特定的ABSource

有没有人有一个如何从iOS 4+中的ABAddressBook获取特定ABSource的示例?

iphone abaddressbook ios4

3
推荐指数
1
解决办法
8203
查看次数