【问题标题】:iOS: Measure call quality/signal StrengthiOS:测量通话质量/信号强度
【发布时间】:2014-01-12 01:28:27
【问题描述】:

我正在构建一个像 RootMetrics - 手机覆盖链接 https://itunes.apple.com/us/app/cell-phone-coverage-map/id399701910 这样的应用程序 或 OpenSignal - https://itunes.apple.com/app/opensignal/id598298030

我需要帮助来了解他们如何衡量通话/语音质量。据我了解,此类 API 是私有的,使用它们的应用程序不会在 App Store 上获得授权。谁能告诉我在这种情况下如何测量信号强度。

【问题讨论】:

    标签: ios iphone


    【解决方案1】:

    我认为如果不使用私有 API:s 就不可能做到这一点。正如您所说,Apple 的机器人可能(肯定)会在您尝试将应用上传到 App Store 时发现。

    如果您仍想使用私有 API,这种测量载波信号强度的方法应该可以解决问题:

    -(int) getSignalStrength() {
        void *libHandle = dlopen("/System/Library/Frameworks/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);
        int (*CTGetSignalStrength)();
        CTGetSignalStrength = dlsym(libHandle, "CTGetSignalStrength");
        if( CTGetSignalStrength == NULL) 
            NSLog(@"Could not find CTGetSignalStrength");
        int result = CTGetSignalStrength();
        dlclose(libHandle);
        return result;
    }
    

    我建议取大约 10 次测量的平均值,因为我相信这些测量值可能会有很大差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-24
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多