IOS可靠地获取用户当前国家/地区

IOS可靠地获取用户当前国家/地区,ios,core-location,Ios,Core Location,在我的iOS应用程序中,我需要获取用户当前所在国家/地区 我知道我可以使用CLLocation来检索位置,然后使用reverseGeocodeLocation来获取国家/地区,但如果用户不授权我的应用程序获取他的位置,这将不起作用。 我可以使用Locale.current作为NSLocale.objectforKey:NSLocale.Key.countryCode; 但我想知道,国家代码是在用户旅行时更改的,还是仅在用户手动更改设置时更改的 是否可以从当前承运人运营商处检索此信息?您可以使用此

在我的iOS应用程序中,我需要获取用户当前所在国家/地区

我知道我可以使用CLLocation来检索位置,然后使用reverseGeocodeLocation来获取国家/地区,但如果用户不授权我的应用程序获取他的位置,这将不起作用。 我可以使用Locale.current作为NSLocale.objectforKey:NSLocale.Key.countryCode; 但我想知道,国家代码是在用户旅行时更改的,还是仅在用户手动更改设置时更改的


是否可以从当前承运人运营商处检索此信息?

您可以使用此服务查找承运人所在国家/地区的代码

CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netInfo subscriberCellularProvider];
NSString *mcc = [carrier mobileCountryCode];

您可以使用以下命令查找使用carrier的国家/地区代码

CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netInfo subscriberCellularProvider];
NSString *mcc = [carrier mobileCountryCode];

那么,如果用户再次拒绝,为什么不显示允许定位的用户弹出窗口呢?CTTelephonyNetworkInfo*object=[[CTTelephonyNetworkInfo alloc]init];CTCarrier*carrierObject=object.subscriberCellularProvider;carrierObject.isoCountryCode;您可以从CTCarrier找到国家代码。现在您必须将此国家代码转换为国家名称。注意:您没有使用此处位置服务。国家代码是从承运人处获取的。@elk_cloner不可能。在iOS上,如果用户拒绝位置授权请求;他必须在首选项中手动将其打开。如果用户再次拒绝,为什么不显示用户弹出窗口以允许定位?CTTelephonyNetworkInfo*对象=[[CTTelephonyNetworkInfo alloc]init];CTCarrier*carrierObject=object.subscriberCellularProvider;carrierObject.isoCountryCode;您可以从CTCarrier找到国家代码。现在您必须将此国家代码转换为国家名称。注意:您没有使用此处位置服务。国家代码是从承运人处获取的。@elk_cloner不可能。在iOS上,如果用户拒绝位置授权请求;他必须在首选项中手动将其打开。请注意,这将在边界附近的任何地方返回错误答案,您可能会意外连接到其他国家的移动塔。例如,这种情况在欧洲很常见。请注意,这会在边界附近的任何地方返回错误答案,您可能会意外地连接到其他国家的移动塔。例如,这种情况在欧洲可能经常发生。