天道酬勤,学无止境

abaddressbook

在 iOS 7.0 模拟器上以编程方式授予对 NAB 的访问权限(Grant access to NAB programatically on iOS 7.0 Simulator)

问题 是否可以通过编程方式授予对 iOS 7.0 Simulator 上的本机地址簿 (NAB) 的访问权限? 我正在编写需要对 NAB 进行写访问的xctest单元测试。 单元测试在iOS 7.0 模拟器上运行,是持续集成过程的一部分,不涉及任何用户交互。 目前,除非用户通过“TestApp”想要访问您的联系人警报明确授予访问权限,否则对 NAB 的访问将被拒绝。 回答1 本着分享的精神,我将回答我自己的问题。 在其他权限中,地址簿访问权限存储在位于 iPhone Simulator 文件夹中/Library/TCC/ TCC.db数据库中。 e.g. /Users/useriko/Library/Application Support/iPhone Simulator/7.1-64/Applications/[appGUID]/Library/TCC/TCC.db 权限存储在 TCC.db 数据库的access表中。 access表架构是: 我们感兴趣的领域是: service - 权限类型 client - 应用程序标识符 allowed - 授予权限? 为了授予Access Book权限,应该将适当的记录插入到access表中(如果已经存在则进行更新)。 插入或更新记录后,表应如下所示: 我编写了以下方法来更新 TCC.db 数据库。 #import <sqlite3.h>

2021-11-28 12:06:27    分类:技术分享    ios   ios7   ios-simulator   abaddressbook   xctest

在 Swift 中以编程方式添加联系人(Programmatically add contact in Swift)

问题 我想在 Swift 中以编程方式添加一个联系人(只是姓名和电话号码)。 我找到了一些 Objective-C 示例,但我没有让它们工作,甚至在 Objective-C 中也没有。 我不希望这涉及 AddressBookUI,因为我想从我自己的 UI 中获取值。 回答1 这是在 Swift 中添加联系人的快速方法。 我在我的 iPhone 5 iOS 7.1 上验证了它,因为我发现模拟器并不总是与我的手机对 AB 东西的结果匹配。 您可以添加一个按钮并指向此方法: @IBAction func createContact(sender: AnyObject) { var newContact:ABRecordRef! = ABPersonCreate().takeRetainedValue() var success:Bool = false var newFirstName:NSString = "AA" var newLastName = "a" //Updated to work in Xcode 6.1 var error: Unmanaged<CFErrorRef>? = nil //Updated to error to &error so the code builds in Xcode 6.1 success = ABRecordSetValue

2021-11-28 11:58:18    分类:技术分享    ios   iphone   swift   abaddressbook

How Do I Obtain A User Selected Email Address From ABPeoplePicker?

Someone else here on Stackoverflow posted a way to obtain a user selected phone number from the contacts list. Could be done for email addresses and if so, how do I do it? Here is the code: - (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person property:(ABPropertyID)property identifier:(ABMultiValueIdentifier)identifier { if (property == kABPersonPhoneProperty) { ABMultiValueRef multiPhones = ABRecordCopyValue(person, kABPersonPhoneProperty); for(CFIndex i = 0; i < ABMultiValueGetCount(multiPhones); i+

2021-11-27 07:50:06    分类:问答    ios   abaddressbook   abpeoplepickerview

Grant access to NAB programatically on iOS 7.0 Simulator

Is it possible to grant access to the native address book (NAB) on iOS 7.0 Simulator programmatically? I am writing xctest Unit Tests that need write access to NAB. The unit tests are run on iOS 7.0 Simulator and are part of Continuous Integration process and doesn't involve any user interaction. Currently unless the user grants access explicitly via the “TestApp” Would like to Access Your Contacts alert, access to NAB is denied.

2021-11-22 01:58:09    分类:问答    ios   ios7   ios-simulator   abaddressbook   xctest

Programmatically add contact in Swift

I want to add a contact (just the name and phone number) programatically in Swift. I've found some Objective-C examples but I didn't get them to work, not even in Objective-C. I don't want this to involve AddressBookUI, because I want to get the values from my own UI.

2021-11-21 10:37:01    分类:问答    ios   iphone   swift   abaddressbook

How to get iPhone contacts in iPhone application

I want to get all the iPhone contacts in my iphone application.Is it possible?If so how?Anybody please help me.

2021-11-20 05:44:55    分类:问答    iphone   objective-c   contacts   abaddressbook

Get iPhone phone number label from Address Book

So I have a method to get all the contact phone numbers from the address book on the iPhone, but is there a way to get the phone number label? For example you can do this: And I'd be looking to modify my method to print out the label (such as iPhone/Home/mobile/etc). ABAddressBookRef addressBook = ABAddressBookCreate(); CFArrayRef all = ABAddressBookCopyArrayOfAllPeople(addressBook); CFIndex n = ABAddressBookGetPersonCount(addressBook); for( int i = 0 ; i < n ; i++ ) { ABRecordRef ref = CFArrayGetValueAtIndex(all, i); NSString *firstName = (NSString *)ABRecordCopyValue(ref

2021-11-19 02:33:08    分类:问答    iphone   objective-c   ios   abaddressbook   phone-number

ABAddressBookCopyArrayOfAllPeople 在设备上返回空数组 [关闭](ABAddressBookCopyArrayOfAllPeople returns empty array on device [closed])

问题 很难说出这里问的是什么。 这个问题是模棱两可的、含糊的、不完整的、过于宽泛或修辞的,不能以其目前的形式得到合理的回答。 如需帮助澄清此问题以便重新打开它,请访问帮助中心。 8 年前关闭。 我在 iOS 6 上开发需要访问 AddressBook 的应用程序,我使用以下代码: NSMutableArray *contacts = [[NSMutableArray alloc]init]; CFErrorRef *error = nil; ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, error); if (error) {NSLog(@"ERROR!!!");} NSArray *arrayOfPeople = (__bridge_transfer NSArray*)ABAddressBookCopyArrayOfAllPeople(addressBook); 但在真实设备上 arrayOfPeople 是空的......为什么会发生这种情况? PS 授予对 AddressBook 的所有访问权限 回答1 首先,这里以适当的形式重写您的代码作为起点。 CFErrorRef error = nil; // no asterisk ABAddressBookRef addressBook =

2021-11-19 00:24:22    分类:技术分享    ios   objective-c   ios6   abaddressbook

根据地址从地址簿访问联系人图片(Access contact image from address book based on its id)

问题 每个人都知道我们可以创建一个地址簿(ABAddressBook),复制数组中的所有人,然后创建一个记录引用(ABRecordRef),然后使用NSData复制其图像数据如下: ABAddressBookRef addressBook = ABAddressBookCreate( ); CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook ); ABRecordRef recordReference = CFArrayGetValueAtIndex(allPeople, addressIndex); NSData *imageData = (NSData *)ABPersonCopyImageData(recordReference); 现在这可以正常工作,这是一个普遍的事实,但在我的情况下(应用程序),我有一个小问题,如果用户最初保存联系人并且不添加/上传任何图像,那么当时,我们正在访问来自该联系人的图像数据,我们有空图像,因此我提供或分配默认图像。但是如果用户稍后为联系人上传图像或修改联系人的现有图像,这意味着更新的图像将没有按预期出现,因此我们不能依赖地址簿名称或某些索引等。 因此我想出了一个想法,保存唯一的联系人 id,然后根据其 id 获取联系人图像。在此过程中,我已将唯一的联系人

2021-11-18 17:11:32    分类:技术分享    iphone   image   contact   abaddressbook

如何在 iphone 应用程序中打开编辑联系人窗口?(How to open the Edit contact window in iphone app?)

问题 我在 Addcontact 单击上从我的 iPhone 应用程序添加联系信息。 我只想在同一个 Addcontact 单击上打开编辑联系人窗口,以便用户可以编辑或删除刚刚添加的联系人。 我做了像下面这样的事情.. - (IBAction)AddContact { ABAddressBookRef addressBook = ABAddressBookCreate(); ABRecordRef Showroom = ABPersonCreate(); //adding contact name as showroom name ABRecordSetValue(Showroom, kABPersonFirstNameProperty, ShowroomName.text , nil); ABAddressBookAddRecord(addressBook, Showroom, nil); ABAddressBookSave(addressBook, nil); // Fetch the address book //ABAddressBookRef addressBook = ABAddressBookCreate(); // Search for the person named "Appleseed" in the address book //ABRecordRef

2021-11-15 16:39:03    分类:技术分享    iphone   objective-c   abaddressbook