2010-11-08 53 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實例用於與其交互,也只會有一個通訊簿。