2014-01-09 36 views
3

我建立一个应用程序像RootMetrics - 手机信号覆盖链接https://itunes.apple.com/us/app/cell-phone-coverage-map/id399701910这里 或OpenSignal - https://itunes.apple.com/app/opensignal/id598298030的iOS:测量通话质量/信号强度

我需要帮助,了解他们如何衡量呼叫/通话质量。据我所知,这些API是私人的和应用程序使用它们,不会在App Store上授权。任何人都可以告诉我如何在这种情况下测量信号强度。

回答

2

我不相信这是不可能的,没有使用私人API:s。正如你所说,当你尝试将应用程序上传到App Store时,Apple的机器人可能会(肯定)发现它。

如果你仍然想使用私有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次测量的平均值,因为我相信这些都可以差别很大。