crash - 如何在 ios13 上使用 [[UIApplication sharedApplication] valueForKey:@"statusBar"] 获取 wifi 信号强度?
问题描述
由于未捕获的异常 'NSInternalInconsistencyException' 导致 [[UIApplication sharedApplication] valueForKey:@"statusBar"] 行发生崩溃,原因:'在 UIApplication 上调用 -statusBar 或 -statusBarWindow 的应用程序。必须更改此代码,因为不再有状态栏或状态栏窗口。
但没有提到如何获取 wifi 信号强度或其他状态栏信息,如网吧。如果有任何其他 API 或方法来获取这些信息,有人可以建议我吗?
解决方案
UIStatusBarManager *statusBarManager = [UIApplication sharedApplication].keyWindow.windowScene.statusBarManager;
if ([statusBarManager respondsToSelector:@selector(createLocalStatusBar)]) {
UIView *_localStatusBar = [statusBarManager performSelector:@selector(createLocalStatusBar)];
if ([_localStatusBar respondsToSelector:@selector(statusBar)]) {
_statusBar = [_localStatusBar performSelector:@selector(statusBar)];
NSLog(@"%@",[[[[_statusBar valueForKey:@"_statusBar"] valueForKey:@"_currentAggregatedData"] valueForKey:@"_wifiEntry"] valueForKey:@"displayValue"]);
}
}
推荐阅读
- java - 如何在 Spring 上注册我的 JsonSerializer
- javascript - 如何从 Angular js 表中获取过滤后的数据?
- python - 如何使用 pip 将 Python 包安装到我的 Divio Docker 项目中?
- python - 如何检查列列表上的条件?
- javascript - 从地图中删除所有标记
- excel - 为什么我在某些行上收到 #N/A 错误而其他行正常
- mysql - 我可以在nodejs的sequelize中使用`SET`变量吗
- mongodb - 异常 Mongo Server 和 Meteor 查询不同意有多少文档与您的查询匹配
- docker - 在 Docker Windows 容器上运行 Traefik
- javascript - JavaScript 是如何工作的:在 V8 引擎内部?