【发布时间】:2015-11-19 00:57:59
【问题描述】:
Apple 已限制 API 来获取信号强度,但有一种方法可以让我找到here。这是获取信号强度的正确方法吗?我正在为 iTunes 商店提交进行开发。苹果会拒绝我的应用吗? @Mateusz Mirkowski 提供的解决方案如下:
UIApplication *app = [UIApplication sharedApplication];
NSArray *subviews = [[[app valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
NSString *dataNetworkItemView = nil;
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarSignalStrengthItemView") class]])
{
dataNetworkItemView = subview;
break;
}
}
int signalStrength = [[dataNetworkItemView valueForKey:@"signalStrengthRaw"] intValue];
NSLog(@"signal %d", signalStrength);
【问题讨论】:
-
您正在使用私有课程,Apple 不允许这样做。任何检测信号强度的方法都必须使用私有类,因此无法做到这一点并获得 AppStore 的批准。
-
UIStatusBarSignalStrengthItemView 是私有的吗?
-
是的,它不在公共 SDK 中。
-
感谢@rckoenes
-
您从哪里得知苹果限制 API 获取信号强度?
标签: ios ios8.3 core-telephony signal-strength