【问题标题】:how do i get my iPhone device country code without using GPS or location service?如何在不使用 GPS 或定位服务的情况下获取我的 iPhone 设备国家代码?
【发布时间】:2017-08-24 14:05:16
【问题描述】:
我需要帮助...
我是 iPhone 应用程序开发和注册页面的新手。
场景:->
- 定位服务已关闭。
- 两个文本字段,一个用于电话国家代码,另一个用于电话号码。
- 在弹出注册页面时,国家代码应该自动填写设备的国家代码。
问题:->我在从设备信息中获取国家代码时遇到了困难。
另外,我可以将哪些信息用于相同... IMEI、MDN、区域设置等...
感谢任何回应..!
【问题讨论】:
标签:
ios
iphone
location
country-codes
【解决方案1】:
您可以从 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