キャリア信号強度を調べるために使用したコードは次のとおりです。
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;
}
*3001#12345#*
60 から 100 の間の値が表示されますが、この番号に電話してデバイスの信号強度をテストすると、 -65
. 以下にスクリーンショットを添付しました。値はgetSignalStrength()
正確ですか?では、なぜ常に正の値を返すのでしょうか?