Dee*_*Dee 4 iphone ipad ios core-telephony ios6
这是我用来找出载波信号强度的代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
它给我的值在60到100之间,但是当我通过调用这个*3001#12345#*数字来测试设备中的信号强度时,它显示为-65.下面我附上截图.价值来自getSignalStrength()准确吗?那为什么它总是会返回正值?

小智 6
getSignalStrength()显示否定的dB衰减,例如 - ( - 60)== 60.呼入将更常规地显示为小于零的测量.是的,这些变化是典型的.即使在严格控制的条件下,您也可以获得+/- 20分贝.解决这个问题的一种方法是随着时间的推移进行一系列测量,比如说每秒,并保留最近10次测量的运行列表.然后报告平均值或中位数或其他统计数据.根据我的经验,这减少了很多变化.您还可以执行标准偏差以提供可靠性的度量.
| 归档时间: |
|
| 查看次数: |
4952 次 |
| 最近记录: |