我很好奇为什么我得到错误的值来获取运营商名称和信号强度。这里是代码。
CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *car = [netinfo subscriberCellularProvider];
NSLog(@"Carrier Name: %@", car.carrierName);
[netinfo release];
为什么我得到价值“运营商”而不是我使用的运营商?
这是获取信号强度的代码
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();
NSLog(@"Signal strength: %d", result);
dlclose(libHandle);
据我所知,信号强度以 dBm 值(负值)为单位,但为什么上面的值显示正值而现在显示信号强度?是否有任何值映射来表示 dBm 上的信号强度
PS 我在真正的 iphone 设备上运行该程序,但仍然得到错误的值。
任何帮助将不胜感激。
谢谢。