获取iPhone用户手机号
使用下面的函数可以返回用户的手机号: extern NSString *CTSettingCopyMyPhoneNumber(); 然后调用即可。 由于这个函数是包含在CoreTelephony中,所以只能用于非官方iPhone SDK。
使用下面的函数可以返回用户的手机号:
externNSString
*CTSettingCopyMyPhoneNumber();
然后调用即可。
由于这个函数是包含在CoreTelephony中,所以只能用于非官方iPhone SDK。
为了调用系统的通讯录界面与相应功能,需要引入AddressBook.framework与AddressBookUI.framework,同时,在源文件中需要包含同文件<AddressBook/AddressBook.h>,<AddressBookUI/AddressBookUI.h>.
首先申明变量:
ABPeoplePickerNavigationController*picker;
在需要的地方调用显示选择联系人界面,同时设置ABPeoplePickerNavigationControllerDelegate委托:
if(!picker){
picker= [[ABPeoplePickerNavigationControlleralloc]init];
// place the delegate of the picker to the controll
picker.peoplePickerDelegate=self;
}
// showing the picker
[selfpresentModalViewController:pickeranimated:YES];
选择联系人界面如下图所示:
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController*)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
{
returnYES;
}
该方法在用户选择通讯录一级列表的某一项时被调用,通过person可以获得选中联系人的所有信息,但当选中的联系人有多个号码,而我们又希望用户可以明确的指定一个号码时(如拨打电话),返回YES允许通讯录进入联系人详情界面:
当用户点击某个字段时,会调用如下方法:
- (BOOL)peoplePickerNavigationController: (ABPeoplePickerNavigationController*)peoplePicker
shouldContinueAfterSelectingPerson:(ABRecordRef)person
property:(ABPropertyID)property
identifier:(ABMultiValueIdentifier)identifier
{
if(property ==kABPersonPhoneProperty) {
ABMutableMultiValueRefphoneMulti =ABRecordCopyValue(person, property);
intindex =ABMultiValueGetIndexForIdentifier(phoneMulti,identifier);
NSString*phone = (NSString*)ABMultiValueCopyValueAtIndex(phoneMulti, index);
//do something
[phonerelease];
[peoplePickerdismissModalViewControllerAnimated:YES];
}
returnNO;
}
联系人信息中可能有很多字段,首先需要判断选择的是否为电话号码字段.当满足要求时,获取联系人信息,通过标识符获得用户选择的号码在该联系人号码列表中的索引,最后通过索引获得选中的电话号码.
最后还需要实现如下方法使得用户在点击"取消"按钮时关闭联系人选择界面:
- (void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController*)peoplePicker
{
// assigning control back to the main controller
[pickerdismissModalViewControllerAnimated:YES];
ABAddressBookRef addressBook = ABAddressBookCreate();
peopleArray = (NSMutableArray *)ABAddressBookCopyArrayOfAllPeople(addressBook);
for (id *people in peopleArray)
{
ABMultiValueRef phones = (ABMultiValueRef) ABRecordCopyValue(people, kABPersonPhoneProperty);
int nCount = ABMultiValueGetCount(phones);
for(int i = 0 ;i < nCount;i++)
{
NSString *phonelLable = (NSString *)ABMultiValueCopyLabelAtIndex(phones, i);
NSString *phoneNO = (NSString *)ABMultiValueCopyValueAtIndex(phones, i); // 这个就是电话号码
}
}
分享到:
相关推荐
手机通讯录,获取手机中通讯录的联系人电话和姓名
android 获取手机通讯录联系人信息,点击直接拨打电话源码 关注博客http://himici.com/
主要介绍了Android获取手机通讯录、sim卡联系人及调用拨号界面方法,本文分别给出实现代码实现获取通讯录和sim卡的联系人,以及权限配置和调用系统拨打电话的界面的实现代码,需要的朋友可以参考下
一个简单的使用Android Studio写的获取通讯录内容并且打电话发短信,如果安装完后APP闪退,请到设置中权限将相应的权限给他。
实现从手机通讯录获取联系人,并用列表显示出来,用CheckBox附带多选功能,并返回所选联系人姓名和号码
获取手机通讯录所有字段,姓名,手机号,电话号,公司电话,邮件等
项目中需要使用到获取手机通讯录中的联系人信息,适配9.0以下,iOS9以下使用通讯录获取名称和电话号码
Android工程源代码,可直接运行安装,实现获取手机通讯录并拨打相应电话的功能
Android 使用获取手机通讯录的姓名,电话,头像和邮箱实现
android 8.1系统蓝牙连接,获取通讯录及通话记录、蓝牙电话等相关代码逻辑梳理
PHP语言编写的手机版的web通讯录,发布以后可以通过IE查询你需要的的通讯信息,包括姓名、单位信息、办公电话、手机号码、家里电话、职位等等,同时根据权限进行增删改功能。
Android程序获取手机号码归属地。例如用户输入“150......”程序立即显示此号码归属于中国移动号。
主要介绍了Android实现通讯录效果——获取手机号码和姓名的相关资料,需要的朋友可以参考下
获取系统通讯录的名字和电话【srxboys】 兼容 iOS6 / 7/8 等等 所有版本 可以看淘宝 收货地址
仿Android手机通讯录,字母排序,首字母查询,拨打电话;修正了繁体不能获取拼音的bug;
仿照一般手机通讯录的使用界面和功能,主要功能可包括: (1)可以添加、删减联系人 (2)联系人的信息包括:姓名、手机号码、工作单位、群组、电子邮件、手机铃声 (3)选择联系人后,可以快速进行操作,如:拨打...
Dreamweaver+ASP通讯录数据库中需要一个通讯表来记录客户数据,如姓名、联系电话、邮件地址等。下面就具体来 介绍整个通讯录数据库(Access 数据库)的设计流程。
Android 使用获取手机通讯录的姓名,电话,头像和邮箱实现,分为系统调用和自定义两种方式
简易手机通讯录 一:功能模块 1.主界面,通过listview 展示所有联系人信息,并在没有联系人时给出友好提示 2.主界面.显示最近查看的某个联系人信息 3.主界面,可以长按某联系人项,弹出菜单,删除该联系人;...