【问题标题】:How to get the Neighbouring cell tower info in the ios using the CoreTeelephony Framework如何使用 CoreTeelephony 框架在 ios 中获取相邻的手机信号塔信息
【发布时间】:2015-03-19 06:29:05
【问题描述】:

我正在制作一个 iOS 应用程序,我需要在其中获取我当前的运营商详细信息,例如 LAC、MCC、MNC、纬度经度信号强度和邻近的手机信号塔信息,从 CoreTelephony Framework CTCarrier 类我们只获得 LAC、MCC ,MNC & 运营商名称。

我用谷歌搜索它,一些论坛告诉我们需要使用 Apple Private API。

谁能告诉我如何获取这些信息?

【问题讨论】:

标签: ios core-telephony


【解决方案1】:

可以检索当前服务小区Get CellID, MCC, MNC, LAC, and Network in iOS 5.1的LAC、CID、MCC、MNC

我认为您无法获得相邻小区的此类信息。 CoreTelephony 只为您提供服务小区的完整信息。相邻小区将为您提供信号强度、ARFCN,并且可能是其他一些东西,但不是 LAC 和 CID。

即使在基带级别上,iPhone 也不会为您提供此类信息。我试图通过 QMI 发送命令,但它提供了相同的信息。所以更有可能是基带接口限制。也许如果我们找到调试接口,我们可以从中得到更多。

关于纬度和经度。我不知道有任何 API 可以检索这些。 iOS 确实从 Apple 服务器内部查询手机信号塔的位置,但我没有找到任何 API 可以让您自己查询。您最好使用公共(或非)服务,这些服务将返回您的手机信号塔位置 - 他们只需要 LAC、CID、MCC、MNC。其中有很多——谷歌、yandex、微软、苹果。有些是公开的,有些不是。

您甚至可以尝试从 iOS 缓存中查询。 iOS 在 SQLite 数据库中缓存手机信号塔的位置。在/var/root/Library/Caches/locationd中查找 *.db 文件

【讨论】:

  • 嗨,我正在研究如何在 iOS 设备上向基带发送 QMI 消息,并找到了您的答案,具体来说:我试图通过 QMI 发送命令,但它提供了相同的信息 是如何做到这一点的?我知道 iOS 上的 CommCenter 使用 QMI,但我找不到自己发送的方法。是通过 IOKit 完成的吗?
  • @danylokostyshyn,从那时起它可能已经改变了。您有几个基带公开的 USB 接口。其中一些被 CommCenter 用于发送 QMI 命令。我找到了它是哪个接口,并且能够使用 IOKit 发送原始 QMI 命令。但它甚至停止工作,甚至支持他们。在后来的一些 iOS 版本中,CommCenter 开始以不同的方式打开这些界面,因此当 CommCenter 已经在使用它时,我无法自己打开它。一种方法是停止 CommCenter,但这会关闭基带,您需要实现整个固件加载机制才能自己启动基带。
  • 另一种方法是挂接到 CommCenter 并从进程内部注入 QMI 消息。但事实证明它太难了,不值得。 CommCenter 是一个非常庞大且复杂的程序,完全用 C/C++ 编写。
  • 我最初的目标是找到调试接口来更好地控制iOS基带。 QMI 不是这样做的方法。如果您检查它提供的命令,它已经是非常高级的接口。几乎所有东西都已经被抽象出来了,所以你有简单的 API 来拨打电话、发送消息、观察来电和消息。没有什么低水平。一些基于 qualcom 的安卓设备有调试界面,但我在 iOS 上找不到。
  • 谢谢!是的,我可以看到,所有与 QMI 相关的功能大部分都是在 C++ 中完成的。我也在考虑连接到 CommCenter,我的最终目标是从 iPhone 向 SIM 卡发送 APDU 命令。我想将 APDU 命令封装在 QMI 或 AT+CSIM 协议中,然后通过基带发送到 SIM。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-03
  • 2016-09-15
  • 2017-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多