您的位置:首页 > 移动开发 > IOS开发

ios开发:获取手机通讯录、发送短信

2013-10-12 09:57 417 查看
//发送短信 bodyofmessage 为短信文本内容,recipients可为空
- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients

{

MFMessageComposeViewController *controller = [[MFMessageComposeViewController
alloc] init];

if([MFMessageComposeViewController
canSendText])
{

controller.body = bodyOfMessage;

controller.recipients = recipients;

controller.messageComposeDelegate =
self;

[self
presentViewController:controller animated:YES
completion:nil];//:controller animated:YES];

}

}

// 处理发送完的响应结果
- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
{
[self
dismissViewControllerAnimated:YES
completion:nil];

if (result ==
MessageComposeResultCancelled)
{
NSLog(@"Message cancelled");
}
else
if (result == MessageComposeResultSent)
{
NSLog(@"Message sent");
}
else
{

NSLog(@"Message failed") ;
}
}

//获取手机号码数组
-(NSArray *)getPhoneNumber{

NSMutableArray *array=[[NSMutableArray
alloc]initWithObjects:nil,
nil];

ABAddressBookRef addressBook =
nil;//ABAddressBookCreateWithOptions(nil, nil);

if ([UIDevice
currentDevice].systemVersion.floatValue>=6.0) {
addressBook=ABAddressBookCreateWithOptions(NULL,
NULL);

dispatch_semaphore_t sema=dispatch_semaphore_create(0);
ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted,
CFErrorRef error)
{
dispatch_semaphore_signal(sema);
});

dispatch_semaphore_wait(sema,
DISPATCH_TIME_FOREVER);
//dispatch_release(sema);
}
else
{
addressBook=ABAddressBookCreateWithOptions(NULL,
NULL);
}

CFArrayRef results =
ABAddressBookCopyArrayOfAllPeople(addressBook);

for(int i =
0; i < CFArrayGetCount(results); i++)
{
ABRecordRef person =
CFArrayGetValueAtIndex(results, i);
//读取firstname
//读取电话多值
ABMultiValueRef phone =
ABRecordCopyValue(person,
kABPersonPhoneProperty);
for (int k =
0; k<ABMultiValueGetCount(phone); k++)
{
//获取电话Label
// NSString * personPhoneLabel = (__bridge NSString*)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(phone, k));
//获取該Label下的电话值
NSString * personPhone = (__bridge
NSString*)ABMultiValueCopyValueAtIndex(phone, k);
NSLog(@"%@",personPhone);
[array addObject:personPhone];
}

}
return array;

CFRelease(results);
CFRelease(addressBook);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: