iOS 录屏检测

iOS Screen recording detection

我试图检测是否为 iOS 11 的应用程序启用了屏幕捕获,为了检测这一点,UIScreen.mainScreen.isCaptured 属性 用于检查它是否被记录。

第一次启动它工作正常,当应用程序终止并再次启动时,然后 API returns NO 虽然屏幕捕获是打开的。

代码:

//In viewWillAppear block

__block ViewController *weakSelf = self;
  [NSTimer scheduledTimerWithTimeInterval:2.0 repeats:YES block:^(NSTimer * _Nonnull timer) {
    [weakSelf screenCaptureDetection];
  }];

- (void) screenCaptureDetection {
  if (@available(iOS 11.0, *)) {
    for (UIScreen *screen in [UIScreen screens]) {
      if([screen performSelector:@selector(isCaptured)]){
      //Detected YES
    }
  }
}

用例场景:

  1. 启动应用程序
  2. 使用苹果屏幕录制选项启动屏幕录制器
  3. 检测到屏幕录像机
  4. 终止应用程序
  5. 重复步骤 1 和 2
  6. 没有检测到录屏,API UIScreen.mainScreen.isCaptured returns NO

请推荐

您应该反复检查录音。

我使用了这段代码,它对我有用。 检查一下:

https://gist.github.com/abhimuralidharan/8db55dff9023028867b719f251372bd7#file-screenrecordingdetector-m