Вот код, который я использовал, чтобы узнать уровень сигнала несущей:Как узнать уровень сигнала несущей программно
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()
точным? Тогда почему он всегда возвращает положительные значения?
Без единиц каких-либо измерение бессмысленно, за исключением относительных сравнений. –