Мне любопытно, почему я получаю неправильное значение, чтобы получить имя оператора и уровень сигнала.Здесь код.
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);
, как я знаю, уровень сигналанаходится в значении дБм (в отрицательном значении), но почему вышеупомянутое значение показывает положительное значение и теперь показывает уровень сигнала?есть ли какое-либо сопоставление значений для представления уровня сигнала на дБм
PS Я запустил программу на реальных устройствах iphone и все еще получил неправильное значение.
любая помощь будет признательна.
Спасибо.