美文网首页
iOS检测是否开启飞行模式

iOS检测是否开启飞行模式

作者: Zack_Lin | 来源:发表于2018-06-14 16:02 被阅读25次

    某恶心需求:不根据网络状态,纯粹根据statusBar判断飞行模式是否开启。
    通过Hack StatusBar的层级,判断是否有“✈️”的标志,以此来判断是否打开了飞行模式。
    慎用此方法,无法保证以后iOS系统更新或出新机型后,是否会造成crash!!!

        //iPhone X
        if ([[app valueForKeyPath:@"_statusBar"] isKindOfClass:NSClassFromString(@"UIStatusBar_Modern")]) {
            children = [[[[app valueForKeyPath:@"_statusBar"] valueForKeyPath:@"_statusBar"] valueForKeyPath:@"foregroundView"] subviews];
            for (UIView *view in children) {
                for (id child in view.subviews) {
                    if ([child isKindOfClass:NSClassFromString(@"_UIStatusBarImageView")]) {
                        state = @"airPlane";
                    }
                }
            }
        } else { //其他机型
            children = [[[app valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
            for (id child in children) {
                if ([child isKindOfClass:NSClassFromString(@"UIStatusBarAirplaneModeItemView")]) {
                    state = @"airPlane";
                }
            }
        }
    

    相关文章

      网友评论

          本文标题:iOS检测是否开启飞行模式

          本文链接:https://www.haomeiwen.com/subject/xlpyeftx.html