【问题标题】:Fetch location from carrier not lat/lon从运营商获取位置而不是纬度/经度
【发布时间】:2013-08-20 04:57:16
【问题描述】:

大多数人都会记得旧的诺基亚手机,它显示了您当前所在的地区(手机信号塔)。

这些信息在 iOS 上可用吗?如果是这样,如何获取此信息?

所以我的意思是,例如在纽约时,它会返回“fulton”作为地区......

【问题讨论】:

    标签: ios ios5 geolocation location


    【解决方案1】:

    您无法访问您在 iOS 上描述的手机信号塔信息,但您始终可以使用 CoreLocation 框架(如果您出于某种原因还希望向后兼容 iOS 5.0,则为 MapKit)进行反向地理编码并获取尽可能详细。

    对于 iOS 7.0,您使用 CLGeocoder 对象。

    CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    
    [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) {
        // Iterate through available placemarks
    }];
    

    location 参数是一个 CLLocation 对象,您将收到或为用户的位置创建。 对于反向地​​理编码请求,完成处理程序中的数组将仅包含一个地标。可以找到地标对象的各种属性及其对应的现实世界关系here

    【讨论】:

    • 感谢您的回答,我已经实现了。我想要手机信号塔信息的原因是因为 GPS 可能工作,但 wifi/3g 不行。这样地理定位就不起作用了。我唯一的选择是跟踪未解决的位置,然后在连接恢复时解决。虽然这可能会变得很多。所以感谢您的回答,但这对我没有进一步的帮助..
    • AFAIK,CLLocationManager API 在没有手机信号的情况下工作。 Apple 只是将蜂窝三角测量作为 CLLocationManager 的最后手段。
    【解决方案2】:

    我们可以从手机信号塔获得的唯一东西是核心电话框架

    Obtaining Information About the Cellular Service Provider
       allowsVOIP  property
       carrierName  property
       isoCountryCode  property
       mobileCountryCode  property
       mobileNetworkCode  property
    

    https://developer.apple.com/library/ios/documentation/NetworkingInternet/Reference/CoreTelephonyFrameworkReference/_index.html

    【讨论】:

    • 是的,我已经阅读了该信息,我希望无论如何它都是可能的。
    • 为什么不想使用 CoreTelephony 来获取信息?
    【解决方案3】:

    Apple 目前不提供任何公开的 API 来揭示手机信号塔的元数据。从他们处理电话 API 设计的方式来看,我认为这也不会成为未来的一项功能。

    查看:Getting cell tower information in an iOS application?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-08
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      相关资源
      最近更新 更多