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

来源:互联网 发布:tensorflow whl 下载 编辑:程序博客网 时间:2024/05/04 11:53

//发送短信 bodyofmessage 为短信文本内容,recipients可为空

- (void)sendSMS:(NSString *)bodyOfMessage recipientList:(NSArray *)recipients


{

    

    MFMessageComposeViewController *controller = [[MFMessageComposeViewControlleralloc] init];

    

    if([MFMessageComposeViewControllercanSendText])

    {

        

        controller.body = bodyOfMessage;

        

        controller.recipients = recipients;

        

        controller.messageComposeDelegate =self;

        

        [selfpresentViewController:controller animated:YEScompletion:nil];//:controller animated:YES];

    

    } 

    

}




// 处理发送完的响应结果

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result

{

    [selfdismissViewControllerAnimated:YEScompletion:nil];

    

    if (result ==MessageComposeResultCancelled)

    {

        NSLog(@"Message cancelled");

        }

    elseif (result == MessageComposeResultSent)

    {

        NSLog(@"Message sent");

    }

    else

    {

        

        NSLog(@"Message failed")  ;

    }

}


//获取手机号码数组

-(NSArray *)getPhoneNumber{

    

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

    

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

    

    if ([UIDevicecurrentDevice].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 = (__bridgeNSString*)ABMultiValueCopyValueAtIndex(phone, k);

        NSLog(@"%@",personPhone);

        [array addObject:personPhone];

    }

    

    

    

}

    return array;


CFRelease(results);

CFRelease(addressBook);

}

原创粉丝点击