我需要在我的应用程序中获得持续的WiFi强度。 我正在尝试实现键值观察方法,并通过以下方式从StatusBar获取此信息:
[UIApplication.sharedApplication() addObserver:signalListener
forKeyPath:@"IDontKnowWhat"
options:NSKeyValueObservingOptionNew
context:NULL];
但这给了我错误:
被调用对象类型'UIApplication * _Nonnull'不是函数或 函数指针
后来我想通过这种方式获得信号强度:
NSArray *subviews = [[[IDontKnowWhat valueForKey:@"statusBar"] valueForKey:@"foregroundView"] subviews];
NSString *wifiNetworkItemView = nil;
for (id subview in subviews) {
if([subview isKindOfClass:[NSClassFromString(@"UIStatusBarDataNetworkItemView") class]]) {
wifiNetworkItemView = subview;
}
}
int wifiSignalStrength = [[wifiNetworkItemView valueForKey:@"wifiStrengthRaw"] intValue];
如果可以在UIApplication sharedApplication的statusBar上实现KVO,有人可以给我建议吗? 还是有其他方法可以持续获得WiFi强度?
答案 0 :(得分:0)
Apple似乎不支持通用Wifi强度分析。但是,有一种非常规的方法来获取信号强度。 NEHotspotHelper具有signalStrength属性,该属性旨在让用户连接到热点。