2010-11-08 54 views
2

我正在构建一个应用程序,它可以同步联机来源中的联系人。一切工作正常到目前为止...当手机有一个地址簿:ABAddressBook - 多个地址簿?

ABAddressBookRef addressBook = ABAddressBookCreate(); 
ABRecordRef group1 = ABGroupCreate(); 
ABRecordSetValue(group1,kABGroupNameProperty,@"Group1",nil); 
ABAddressBookAddRecord(addressBook,group1,nil); 
ABAddressBookSave(addressBook,nil); 

ABRecordRef person = ABPersonCreate(); 
// Edit person values... 

ABGroupAddMember(group1,person,nil); 
ABAddressBookAddRecord(addressBook,person,nil); 
ABAddressBookSave(addressBook,nil); 
CFRelease(person); 
CFRelease(addressBook); 

但是,当手机已经有多个通讯簿。我正在为所有联系人提供一个地址簿的电话上进行测试,其中一个用于Gmail等。当我以上述方式添加联系人时,会将其添加到Gmail地址簿中,并在过程中将“Group1”标识符来自联系人。有没有办法可以将ABAddressBookRef更改为指向手机中的特定地址簿?

回答

0

根据reference,ABAddressBookCreate总是返回从系统的地址簿数据库填充的地址簿对象。这意味着即使您有多个ABAddressBook实例用于与其交互,也只会有一个通讯簿。