gpt4 book ai didi

ios - 如何防止我的应用向固定电话号码发送短信

转载 作者:可可西里 更新时间:2023-11-01 04:43:18 25 4
gpt4 key购买 nike

通过我的应用程序发送短信时,它应该只发送到手机,但对于某些联系人,当有两个号码时,一个是固定电话,另一个是手机,它也会发送到固定电话。

- (NSMutableArray*)getContactsWithAddressBook:(ABAddressBookRef )addressBook {

contactList = [[NSMutableArray alloc] init];
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);
for (int i=0;i < nPeople;i++) {
NSMutableDictionary *dOfPerson=[NSMutableDictionary dictionary];
ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);

//For username and surname
ABMultiValueRef phones =(__bridge ABMultiValueRef)((__bridge NSString*)ABRecordCopyValue(ref, kABPersonPhoneProperty));
CFStringRef firstName, lastName;
firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);
lastName = ABRecordCopyValue(ref, kABPersonLastNameProperty);
[dOfPerson setObject:[NSString stringWithFormat:@"%@ %@", firstName, lastName] forKey:@"name"];

//For Email ids
ABMutableMultiValueRef eMail = ABRecordCopyValue(ref, kABPersonEmailProperty);
if(ABMultiValueGetCount(eMail) > 0) {
[dOfPerson setObject:(__bridge NSString *)ABMultiValueCopyValueAtIndex(eMail, 0) forKey:@"email"];
}

NSLog(@"ABMultiValueGetCount(phones)=%ld",ABMultiValueGetCount(phones));
//For Phone number
NSString* mobileLabel;
for(CFIndex i = 0; i < ABMultiValueGetCount(phones); i++) {
mobileLabel = (__bridge NSString*)ABMultiValueCopyLabelAtIndex(phones, i);
if([mobileLabel isEqualToString:(NSString *)kABPersonPhoneMobileLabel])
{
[dOfPerson setObject:(__bridge NSString*)ABMultiValueCopyValueAtIndex(phones, i) forKey:@"Phone"];

}
else if ([mobileLabel isEqualToString:(NSString*)kABPersonPhoneIPhoneLabel])
{
[dOfPerson setObject:(__bridge NSString*)ABMultiValueCopyValueAtIndex(phones, i) forKey:@"Phone"];
break ;
}
}
[contactList addObject:dOfPerson];
}
return contactList;

最佳答案

Google 的电话号码处理库 libPhoneNumber 有一个漂亮的 iOS 端口。

它可以帮助您区分固定电话、移动电话、免费电话、收费电话等等。您可以使用 Cocoapods 将此库添加到您的项目中,并按照 README 获取文档。

这是链接(iOS 端口):https://github.com/iziz/libPhoneNumber-iOS
Google libphonenumber 库(适用于 Android):https://github.com/googlei18n/libphonenumber

它们都具有几乎相同的功能,并且在检测号码是否有效方面非常准确。每当我们遇到无法接收短信的电话号码(例如固定电话)时,它为我们节省了大量时间和金钱。

但是,正如评论中所提到的,大多数固定电话或固定电话号码都可以接收短信,在这种情况下,您应该询问用户是否要在指定号码上接收短信。

谢谢
耳廓
快乐编码!

关于ios - 如何防止我的应用向固定电话号码发送短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40841011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com