我正在构建类似RootMetrics的应用 - 手机覆盖率链接https://itunes.apple.com/us/app/cell-phone-coverage-map/id399701910 或OpenSignal - https://itunes.apple.com/app/opensignal/id598298030
我需要帮助才能了解他们如何衡量通话/语音质量。据我所知,这些API是私有的,使用它们的应用程序,将不会在App Store上获得授权。在这种情况下,谁能告诉我如何测量信号强度。
答案 0 :(得分: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次测量的平均值,因为我认为这些测量值可能差别很大。