录屏状态监听之防录屏

继之前接到电话、短信和截屏监听需求之后,在 iOS 11.0 系统之上新增了屏幕录制的新功能玩法,所以也随之迎来了新的屏幕录制监听的需求,即防录屏功能监听 。。。

通过官方文档得知 capturedDidChangeNotification 方法可以捕获屏幕状态发生变化时发送的通知,故借此方法展开监听的操作,具体 code 如下:

一、方法实现

#pragma mark - 监听录制
/**
 监听屏幕录制
 iOS 11.0 版本以上
 */
- (void)monitorRecordVideo {// 监听屏幕录制
    kWeakSelf(self);
    // 监测设备的录制状态
    if (@available(iOS 11.0, *)) {
        [[NSNotificationCenter defaultCenter] addObserverForName:UIScreenCapturedDidChangeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * _Nonnull note) {
            NSLog(@"屏幕录制 ...");
            
            [weakself showPromptWarningView];
        }];
    } else {
        // Fallback on earlier versions
    }
}
/**
 提示视图
 */
- (void)showPromptWarningView {
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示"
                                                        message:@"请勿录制"
                                                       delegate:self
                                              cancelButtonTitle:nil
                                              otherButtonTitles:@"确定", nil];
    [alertView show];
}

注:因该方法是 iOS 11.0 之后新增,所以要添加系统版本的判定,避免不必要的意外状况发生。

二、方法调用

在所需要的页面或地方直接调用该方法即可,页面中可以在 viewWillAppear 或 viewDidLoad 方法中都 ok。

[self monitorRecordVideo];// 防录屏监听

  

电话状态监听 - iOS

短信状态监听 - iOS

截屏状态监听 - iOS


以上便是此次分享的内容,希望内容能对大家实际有所帮助,有什么不足之处欢迎指点共同进步!


原文地址:https://www.cnblogs.com/survivorsfyh/p/10966290.html