我正在构建类似RootMetrics的应用程序-手机覆盖率链接https://itunes.apple.com/us/app/cell-phone-coverage-map/id399701910在这里
或OpenSignal-https://itunes.apple.com/app/opensignal/id598298030
我需要帮助以了解他们如何衡量通话/语音质量。据我了解,此类API是 private 的,使用它们的应用程序不会在App Store上获得授权。谁能告诉我在这种情况下如何测量信号强度。
最佳答案
我认为,如果不使用 private API,这是不可能的。正如您所说,当您尝试将应用程序上载到App Store时,Apple的机器人很可能会(肯定)找出来。
如果您仍然想使用 private 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次测量的平均值,因为我相信这些测量值可能会有很大差异。
关于ios - iOS:衡量通话质量/信号强度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21016685/