Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When is ios auto screen capture taken?

I am trying to change the screen shot that is automatically captured by iOS when the app enters the background.

However I am not entirely sure exactly when this screenshot is taken.

For example:

If you pull down the notification bar while in the app the following method is called:

- (void) applicationWillResignActive:(UIApplication *) application {
}

Also if you double tap the home button while in the app the same method is called. In addition if an alert view is show 'applicationWillResignActive' is called.

But in both of these cases

- (void) applicationDidEnterBackground:(UIApplication *) application {
}

is not called.

So my question is, is there a screenshot captured after the call to applicationWillResignActive even if the application does not enter the background? Or does iOS only capture a screenshot after applicationDidEnterBackground?

like image 701
lostintranslation Avatar asked Dec 01 '16 22:12

lostintranslation


People also ask

Does iPhone screen record automatically?

The native iPhone 13 screen record function always counts down 3,2,1 before it starts, and requires manual activation.

Why does my iPhone take automatic screenshots?

iPhone taking random screenshots can also be caused by the Back Tap feature. If it's enabled and the Screenshot function is assigned to it, it can easily generate unexpected print-screens. How to: Open Settings and browse for Accessibility. Tap on Touch and scroll all the way down to Back Tap.

Why is my phone taking screenshots by itself?

It was caused by setting intelligent assistance/fingerprint function/screen capture on. This causes a long press on the fingerprint sensor to trigger a screenshot.

Is screen capture detectable?

So, in this sense, the answer is no; websites cant detect user activities like screen capture. However, if the website has you download some software and install it, it can most probably recognize external screen capture tools being used on their web pages (if they want to).


3 Answers

Look at official doc - "Preventing Sensitive Information From Appearing In The Task Switcher".

It says applicationDidEnterBackground: should be used for the said purpose.

like image 185
Nikhil Manapure Avatar answered Oct 19 '22 14:10

Nikhil Manapure


you can look over here, in summary, change the view before return from applicationDidEnterBackground:

like image 33
Allen Avatar answered Oct 19 '22 12:10

Allen


Yes.

- (void) applicationWillResignActive:(UIApplication *) application { }

is called when you pull down the notification bar or even when you double click the home button. You have to do something here to prevent your sensitive information to be captured by the OS. One workaround might be:

  1. Set a blurry screen overlay before the app goes in the background
  2. Once the app becomes active remove this overlay

Something like this:

-(void)applicationWillResignActive:(UIApplication *)application
{
    imageView = [[UIImageView alloc]initWithFrame:[self.window frame]];
    [imageView setImage:[UIImage imageNamed:@"blurryImage.png"]];
    [self.window addSubview:imageView];
}

And then remove this overlay before the application enters foreground:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    if(imageView != nil) {
        [imageView removeFromSuperview];
        imageView = nil;
    }
}
like image 1
nayem Avatar answered Oct 19 '22 14:10

nayem