这是我用来查找载波信号强度的代码:
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;
}
它给我的值在60到100之间,但是当我通过拨打
*3001#12345#*
号码来测试设备的信号强度时,它显示为-65
。下面我附上了截图。那么getSignalStrength()
返回的值准确吗?为什么它总是返回正值?