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
- 没有检测到录屏,API
UIScreen.mainScreen.isCaptured
returns NO
请推荐
您应该反复检查录音。
我使用了这段代码,它对我有用。
检查一下:
我试图检测是否为 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
- 没有检测到录屏,API
UIScreen.mainScreen.isCaptured
returns NO
请推荐
您应该反复检查录音。
我使用了这段代码,它对我有用。 检查一下: