Обнаружение записи экрана iOS - PullRequest
0 голосов
/ 22 ноября 2018

Я попытался определить, включен ли снимок экрана для приложения для iOS 11, чтобы определить, используется ли свойство UIScreen.mainScreen.isCaptured, чтобы проверить, записано ли оно.

Отлично работает при первом запуске,когда приложение завершается и запускается снова, API возвращает 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. Запустите устройство записи экрана с помощью опции записи с экрана Apple
  3. Обнаружено устройство записи экрана
  4. Завершите работуapp
  5. Повторите шаги 1 и 2
  6. Запись экрана не обнаружена, API UIScreen.mainScreen.isCaptured возвращает NO

Пожалуйста, предложите

1 Ответ

0 голосов
/ 22 ноября 2018

Вам следует повторно проверять запись.

Я использовал этот код, и он работал для меня.проверить это:

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

...