33

Social media apps like snapchat, instagram, viber, etc notify you if someone takes a screenshot of your profile, chat, conversation, story, etc.

How does the app find out that you are taking a screenshot of their conversation, profile, story?

Links:(https://support.viber.com/customer/en/portal/articles/2739322-secret-chats) (https://www.women.com/connieliou/lists/can-someone-see-if-you-screenshot-a-snapchat-message) (https://www.google.com/amp/s/amp.businessinsider.com/does-instagram-notify-screenshots)

user13267
  • 359
  • 6
  • 16
Zheer
  • 1,165
  • 3
  • 8
  • 10
  • 5
    [How does Snapchat detect screenshots?](https://android.stackexchange.com/questions/119759/how-does-snapchat-detect-screenshots). It's more like a loophole than a feature. – defalt Oct 14 '19 at 07:19
  • Also the other apps don't detect anything (given ur links) Viber doesn't let u take screenshots (like any banking app) and insta only looks for screenshots in DMs – Иво Недев Oct 14 '19 at 10:38
  • 1
    There is no fool-proof way of determining that a screenshot has been taken, nor can the app determine who looks at it. Don't forget that a screenshot could also be created using a hardware solution like a camera taking a photograph of the screen. If an app notices that a software screenshot has been taken, this will also be an error-prone thing because any screenshot created could be removed soon after. So, effectively you cannot know for sure neither that one has been taken nor that _none_ has been taken. – Alfe Oct 14 '19 at 14:28
  • @Иво Недев if you use an iphone viber sends a notification to the sender. – Zheer Oct 14 '19 at 17:43
  • @Alfe is there any method you can use to prevent this?its one of the worst features. – Zheer Oct 14 '19 at 17:51
  • 1
    Prevent which part? The creation of the screenshot? Or the sending of the notification to the one who has been screenshot? Or that the notification doesn't work? Which part is it you find so bad? If you don't want a screenshot taken from your profile, then all you can do is not create a profile. If you don't want a notification sent to the owner of the profile, then use a camera to make a picture of the screen. I'm pretty sure no app will be able to notice this. – Alfe Oct 14 '19 at 21:22

1 Answers1

41

This is a major revision to my previous answer, which was factually incorrect. It is posted as a new answer in order to prevent baiting-and-switching of votes, as I feel the current answer is not the same as the one I had initially posted.


In order for a social media application to notify a user that a screenshot has been taken, the application has to know that a screenshot is being taken.

To my knowledge, neither iOS, nor Android, have a framework intended to detect screenshots. This means that developers need to find a workaround on how to detect a screenshot being taken. There are several questions on Stack Exchange regarding this (such as here and here) and the method that seems to be recommended the most is to observe for a new file to be created in the screenshots directory.

Since an application can determine if it is currently in foreground or not, and can receive a notification when a new screenshot is being created, the application can therefore determine if a screenshot of the application is being taken. The application can then react accordingly, such as notifying users that a screenshot of their profile or conversation has been taken.

Keep in mind that I cannot answer exactly if this is how Instagram or other Social Media applications implement this. This answer explains how it could be done.

  • 13
    Yep this is now exactly correct. As per the links so far, Instagram only notifies user if a screenshot is taken of a timed DM. I send myself a timed DM to my 2nd account, then took a screen shot. The first account got a notification that a screenshot was taken. I repeated the exact process but before I took the screenshot I revoked storage access rights to Instagram (preventing it from looking in my folders) I then took a screenshot and my 2nd account didn't receive any notifications. It only indicated that the image was seen. – Иво Недев Oct 14 '19 at 12:28
  • 1
    Previous to this I also took all sorts of screenshots in Instagram, of the feed or of a story, none of these received any notifications (as we already knew) – Иво Недев Oct 14 '19 at 12:29
  • 1
    @ИвоНедев My answer isn't specific to Instagram and just uses any social media application as an example. I don't use Instagram, or any other social media platform, so I can't comment on when notifications are sent out. –  Oct 14 '19 at 12:29
  • True, but I only have insta to test the theory. – Иво Недев Oct 14 '19 at 12:30
  • Thank you ladies and gentlemen , so basically is accessing the storage the only way that social media apps can find out whether someone took a screenshot or not? – Zheer Oct 14 '19 at 17:35
  • Is there any other method to prevent the app from knowing that you took a screenshot? – Zheer Oct 14 '19 at 17:55
  • 1
    @Zheer That depends very much on your OS, the phone in question and whether or not you need this to be future-proof. –  Oct 14 '19 at 18:36
  • 1
    Or is there any way for the OS screenshots to be saved to a different directory – thomasrutter Oct 14 '19 at 23:27
  • 1
    Apps can also prevent screenshots altogether, although this can be overriden using Magisk – JonathanReez Oct 15 '19 at 02:21
  • 1
    @thomasrutter use a 3d party app. If you google "how to take a snapchat screenshot" you'll find appropriate recommendations that will work fine. – Иво Недев Oct 15 '19 at 06:52
  • 4
    @Zheer Make sure your social media app doesn't have permission to access your storage and can't read your notification. In Android Pie when you take a screenshot, a notification also pops up. Any app with access to notification can see that the screenshot was taken. – defalt Oct 15 '19 at 07:50