有没有办法以编程方式知道iPhone上的手机载体?
我正在寻找iPhone连接的运营商名称.
对于iPhone应用程序,我需要在启动时确定用户所在的国家/地区.据推测,我将不得不打开位置服务并进行某种反向地理编码.如果可能的话,我真的不想使用第三方网络服务,是否有任何其他建议来确定服务提供的位置?
最初,我只需要检查用户是否在美国境内,但是将来可能会更改以添加更多国家/地区.我知道无法始终确定位置或用户可能已关闭位置服务.基本上,我只需要知道用户是否被检测到是在美国境内,以便关闭特定功能.
编辑:进一步阅读,它看起来像MKReverseGeocoder,除了我不希望在我的应用程序中显示任何地图,这意味着我不允许使用它.
我的应用程序使用以下方法来检测iOS 4和5中的漫游.
NSString *carrierPListSymLinkPath = @"/var/mobile/Library/Preferences/com.apple.carrier.plist";
NSString *operatorPListSymLinkPath = @"/var/mobile/Library/Preferences/com.apple.operator.plist";
NSFileManager *fm = [NSFileManager defaultManager];
NSError *error = nil;
NSString *carrierPListPath = [fm destinationOfSymbolicLinkAtPath:carrierPListSymLinkPath error:&error];
NSString *operatorPListPath = [fm destinationOfSymbolicLinkAtPath:operatorPListSymLinkPath error:&error];
return (![operatorPListPath isEqualToString:carrierPListPath]);
Run Code Online (Sandbox Code Playgroud)
但是这个代码总是在iOS6上返回false(即使我不漫游,它总是返回false),我认为它可能是由Apple更改的plist文件位置,任何人都面临同样的问题,任何人都可以帮助我吗?
谢谢.
CTCarrier的carrierName的文档说明"如果用户正在漫游,则值不会改变;它始终代表用户拥有帐户的提供商."
然而,它并没有对mobileNetworkCode说同样的话.这是基于当前运营商的变化还是保持不变?
我正在尝试查找手机是否在startMonitoringSignificantLocationChanges回调中漫游,以便避免地理定位.
我想,当我在我的iOS应用,漫游地进入到得到通知,我已经阅读文档NSLocale, SCNetworkReachability以及核心电话(我可能错过了一些东西).我需要从sim(或任何其他方式,如果可能)获取此信息.
我正在开发一个处理电话号码的应用程序并遇到一个问题,如果用户试图进行漫游呼叫,我必须弹出警告消息(为了使其更清晰,我暗示用户在另一个省/州).我发现这篇文章(有没有办法确定iphone是否正在漫游?)来自stackoverflow,但它已经很老了.
Apple为此提供了任何api吗?如果Apple有,那么api/class的名称是什么?如果还没有,那文章仍然是解决这个问题的唯一方法吗?
谢谢!