Мне нужно в моем приложении, чтобы постоянно получать силу Wi-Fi. Я пытаюсь реализовать подход наблюдения за ключевыми значениями и получить эту информацию из StatusBar следующим образом:
[UIApplication.sharedApplication() addObserver:signalListener
forKeyPath:@"IDontKnowWhat"
options:NSKeyValueObservingOptionNew
context:NULL];
Но это дает мне ошибку:
Called object type 'UIApplication * _Nonnull' is not a function or function pointer
А позже я хотел бы получить мощность сигнала таким образом:
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];
Может ли кто-нибудь посоветовать мне, можно ли реализовать KVO на statusBar UIApplication sharedApplication? Или есть какой-нибудь другой способ постоянно поддерживать Wi-Fi?
@llb Но он не решает живое обновление, если сигнал WiFi.
UIApplication.sharedApplication() - это синтаксическая ошибка. Это должен быть UIApplication.sharedApplication. (Это тоже не Swift, потому что Swift будет UIApplication.shared.)





Похоже, что Apple не поддерживает общий анализ мощности Wi-Fi. Однако существует неортодоксальный метод определения мощности сигнала. NEHotspotHelper имеет свойство signalStrength, которое было разработано для подключения пользователей к точкам доступа.
Наверное дублирует этот вопрос