gpt4 book ai didi

ios - 是否可以确定 SIM/电话号码是否已更改?

转载 作者:技术小花猫 更新时间:2023-10-29 10:33:03 28 4
gpt4 key购买 nike

我们有一个产品,用户可以通过提供他们的电话号码进行注册。

然而,在他们注册后,他们可能会更改他们的 SIM 卡。

是否可以通过编程确定 sim 卡是否已被删除或插入?

(谢谢,如果你提供的话,但是任何关于首先使用电话号码的使用的离题评论都与这个讨论无关,我不想讨论那方面的事情,只讨论 sim 方面) .

最佳答案

是的,当然可以。链接 CoreTelephony.framework 以编译以下代码:

CTTelephonyNetworkInfo* info = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier* carrier = info.subscriberCellularProvider;
NSString *mobileCountryCode = carrier.mobileCountryCode;
NSString *carrierName = carrier.carrierName;
NSString *isoCountryCode = carrier.isoCountryCode;
NSString *mobileNetworkCode = carrier.mobileNetworkCode;

// Try this to track CTCarrier changes
info.subscriberCellularProviderDidUpdateNotifier = ^(CTCarrier* inCTCarrier) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"User did change SIM");
});
};

通过 mobileCountryCode、mobileNetworkCode、carrierName、isoCountryCode 的值可以判断 SIM 卡的存在。 (如果没有 SIM,它们就会变得不正确)。

CoreTelephony 中还有一些未记录的功能/通知,但如果您使用它们,您的应用可能会被 Apple 禁止。无论如何:

// Evaluates to @"kCTSIMSupportSIMStatusReady" when SIM is present amd ready; 
// there are some other values like @"kCTSIMSupportSIMStatusNotInserted"
NSString* CTSIMSupportGetSIMStatus();

// Use @"kCTSIMSupportSIMStatusChangeNotification" to track changes of SIM status:
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(SIMNotification:)
name:@"kCTSIMSupportSIMStatusChangeNotification"
object:nil
];

//这个复制当前手机号
NSString* CTSettingCopyMyPhoneNumber()

附录 另一种可能的(合法的)解决方案:如果您的公司有电话号码数据库,您可以发送短信或调用(并切断)任何特定号码以验证用户是否仍在使用相同的电话号码。

更新 函数 NSString* CTSettingCopyMyPhoneNumber() 不再工作(返回空字符串)。

关于ios - 是否可以确定 SIM/电话号码是否已更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10872117/

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