如何在不使用 GPS 或定位服务的情况下获取我的 iPhone 设备国家/地区代码?



我需要帮助...我是iPhone应用程序开发的新手,正在注册页面上工作。场景:->

  1. 定位服务已关闭。
  2. 两个文本字段,一个用于电话国家/地区代码,另一个用于电话号码。
  3. 弹出注册页面时,国家代码应自动填充设备的国家代码。

问题:-> 我无法从设备信息中获取国家/地区代码。另外,我可以将哪些信息用于相同的...IMEI,MDN,语言环境等...


任何回应不胜感激..!

您可以从iOS的CoreTelephony框架中获取此信息:

#import <CoreTelephony/CTTelephonyNetworkInfo.h>
...
@property (nonatomic, strong) CTTelephonyNetworkInfo* networkInfo;
...
self.networkInfo = [[CTTelephonyNetworkInfo alloc] init];
NSString* country = [self.networkInfo subscriberCellularProvider].isoCountryCode;

我迅速从我的一个应用程序中复制粘贴了这个。我相信如果需要,您可以将其转换为 Swift。

subscriberCellularProvider提供对CTCarrier对象的访问,该对象具有比国家/地区代码更多的字段:MCC、MNC、运营商名称和标志(如果允许 VoIP(。

iOS 不提供对 IMEI 的访问权限。

应用内购买 API 可以告诉您用户在哪个 iTunes Store 上;再次是 ISO 国家/地区代码。 您可能需要为您的应用激活 IAP,因此当您不销售任何东西时,这可能不允许/选项。

当前区域设置确实也可以为您提供国家/地区代码:

let locale  = NSLocale.currentLocale()
let country = currentLocale.objectForKey(NSLocaleCountryCode) as? String 

最新更新