Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何找到准确的移动信号强度和服务提供商名称?_Iphone_Ios_Core Telephony - Fatal编程技术网

Iphone 如何找到准确的移动信号强度和服务提供商名称?

Iphone 如何找到准确的移动信号强度和服务提供商名称?,iphone,ios,core-telephony,Iphone,Ios,Core Telephony,在我的应用程序中,我想获得移动网络信号强度和网络提供商名称, 在下面的代码中,它返回的是信号强度,但我感觉不太准确,因为当强度值达到60%时,信号棒也显示满。网络提供商名称返回为载波。我每2秒调用一次此方法 -(void)UpdateLabelWithSignal{ int str = CTGetSignalStrength(); NSLog(@"SignalStrength:%d",str); NSLog(@"SignalStrength:%@",[NSString stri

在我的应用程序中,我想获得移动网络信号强度和网络提供商名称, 在下面的代码中,它返回的是信号强度,但我感觉不太准确,因为当强度值达到60%时,信号棒也显示满。网络提供商名称返回为载波。我每2秒调用一次此方法

-(void)UpdateLabelWithSignal{
   int str = CTGetSignalStrength();
   NSLog(@"SignalStrength:%d",str);
   NSLog(@"SignalStrength:%@",[NSString stringWithFormat:@"%d",str]);
   SignalLabel.text = [NSString stringWithFormat:@"%d",str];

}
//获取网络提供商名称的代码

    CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
    CTCarrier *carrier = [netinfo subscriberCellularProvider];
    NSLog(@"MY NAME:%@",carrier.carrierName);   

如果你想让它每隔几秒钟准确地更新一次。下面是代码

 - (void)viewDidLoad
 {
  [super viewDidLoad];

  printf("signal strength: %d\n", CTGetSignalStrength());
 slimeDeathAnimTimer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(UpdateLabelWithSignal) userInfo:nil repeats:YES];
  CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init];
  CTCarrier *carrier = [netinfo subscriberCellularProvider];
  NSLog(@"MY NAME:%@",carrier.carrierName);

  NSLog(@"mobileCountryCode = %@",carrier.mobileCountryCode);
  NSLog(@"mobileNetworkCode = %@",carrier.mobileNetworkCode);
  NSLog(@"isoCountryCode = %@",carrier.isoCountryCode);
  NSLog(@"allowVOIP = %d",carrier.allowsVOIP);

  }

-(void)UpdateLabelWithSignal{

int str = CTGetSignalStrength();
NSLog(@"SignalStrength:%d",str);
  NSLog(@"SignalStrength:%@",[NSString stringWithFormat:@"%d",str]);
SignalLabel.text = [NSString stringWithFormat:@"%d",str];

}

可能的重复:我不明白这可能是您的解决方案的重复,请检查链接。能否将代码发送给我。int CTGetSignalStrength();-(void)viewdiload{[super viewdiload];//加载视图后,通常从nib执行任何其他设置。而(true){NSLog(@“信号强度:%d\n”,CTGetSignalStrength());sleep(1);}