首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS屏幕记录检测

iOS屏幕记录检测
EN

Stack Overflow用户
提问于 2018-11-22 07:09:10
回答 1查看 2.7K关注 0票数 0

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

它在第一次启动时运行良好,当应用程序被终止并再次启动时,API将不会返回,尽管屏幕截图是打开的。

代码:

代码语言:javascript
复制
//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返回否。

请建议

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-22 08:59:48

你应该反复检查录音。

我用了这段代码,它对我有用。看一看:

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53425563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档