【问题标题】:Get CellID, LAC, ... on iOS 8.3在 iOS 8.3 上获取 CellID、LAC、...
【发布时间】:2015-06-14 11:56:49
【问题描述】:

从 iOS 5.X 开始,我使用这些方法获取电台信息:Get CellID, MCC, MNC, LAC, and Network in iOS 5.1

但是对于 iOS 8.3 beta(和 8.3 GM),这个私有 API

_CTServerConnectionCellMonitorCopyCellInfo

不再起作用了。

【问题讨论】:

    标签: ios radio iphone-privateapi core-telephony cellid


    【解决方案1】:

    Apple 被告知其 CoreTelephony 存在弱点,因此现在调用 CoreTelephony 失败。他们正在检查调用者是否被沙盒,所以调试后你可以看到:

    Caller not allowed to perform action: TelephonyApiTest.240, action = sandboxed lookup, code = 1: Operation not permitted, uid = 501, euid = 501, gid = 501, egid = 501, asid = 0
    

    但是,仍然有少数调用有效,例如:

    _CTServerConnectionCopyWakeReason
    _CTServerConnectionCopyVoiceMailInfo
    

    等等……我都没有试过。

    现在最大的问题是你甚至无法获得信号强度,因为CTGetSignalStrength 总是返回 0。

    当您尝试像您的案例 _CTServerConnectionCellMonitorCopyCellInfo 那样进行一些限制调用时,您会看到 CTError 中的错误代码为 13(权限被拒绝)

    【讨论】:

      【解决方案2】:

      从 iOS 8.3 开始,上述所有解决方案都需要授权才能工作

          <key>com.apple.CommCenter.fine-grained</key>
      <array>
          <string>spi</string>
      </array>
      

      不仅手机监视器受到保护,而且似乎所有 CoreTelephony 通知现在都需要该权利才能工作。例如,kCTMessageReceivedNotification 也会受到影响。

      【讨论】:

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