Screenshots von Snapchat Bildern machen (2014)

Ihr kennt bestimmt Snapchat. Das ist eine App, mit der man Bilder verschicken kann, welche dann durch Drücken ein paar Sekunden beim Gegenüber angezeigt werden und danach für immer verschwinden. Ideal für.. ihr wisst schon was. Ich persönlich hielt die App bisher immer für maximal bescheuert, weil man ja ganz einfach einen Screenshot des Fotos machen kann und voilà, der Drops ist gelutscht. Früher schien das auch zu funktionieren, mittlerweile jedoch nicht mehr. Wird ein Screenshot erstellt, bekommt die gegnerische Seite nämlich eine Benachrichtigung à la “XYZ took a screenshot”. Ich verwende die App nicht, daher ist mir das auch ziemlich egal, ich war jedoch - als ich heute morgen von dem Feature gehört habe - von dem technischen Aspekt angetan. Wie erkennt Snapchat unter iOS, dass ein Screenshot erstellt wurde, wo die API doch sehr eingeschränkt ist. Eine kurze Befragung meiner Lieblingssuchmaschine ergab, dass das ganze in der Tat nicht so einfach ist.

Es gab zwei Wege, wie man als App-Entwickler diese Events abfangen kann. Der eine Weg ist wohl, dass der Digitizer kurz den Fokus verliert, wenn man mit dem Finger auf dem Bildschirm ist und einen Screenshot macht. Da man bei Snapchat bekanntlich den Finger auf dem Bild halten muss, bis der Timer abgelaufen ist, ist das also ideal. Jedoch scheint diese Technik nicht unter iOS 7 (zumindest in/ab der Beta 2) zu funktionieren. Das konnte ich nicht überprüfen, da ich aktuell die iOS 8 Beta 2 laufen habe. Aufgrund des Ausschlussverfahrens muss es also entweder wieder aktiviert worden sein oder es gibt eine dritte Methode. Aber kommen wir erst zur zweiten Idee:

Hat eine App Zugriff auf die Galerie, so ist es möglich einfach das letzte Bild zu analysieren. Erscheint plötzlich ein Bild in der Galerie, dessen Maße mit der des Displays übereinstimmen, ist es sehr wahrscheinlich, dass gerade ein Screenshot erstellt wurde. Da Snapchat bei mir allerdings keinen Zugriff auf die Galerie hatte (ich habe das überprüft, und ja: Kamera ist nicht gleich Galerie), muss es entweder Methode 1 oder eben Methode 3 sein, welche bei Snapchat verwendet wird.

Aber genug des Nerdgeschwafels. Ich habe durch ein wenig Experimentieren einen Weg gefunden, wie man trotz Schutzmechanismus - zumindest unter iOS - mit der Snapchat-Version 7.0.4 (die aktuellste bei Erscheinen des Blogposts), einen Screenshot erstellen kann, ohne dass der Partner dies mitbekommt:

  1. Ist ein Snap angekommen, wird er sofort heruntergeladen. Man kann vor dem Ansehen also den Flugzeugmodus aktivieren.
  2. Nun sieht man sich das Bild an (Finger auf dem Bildschirm halten) und macht dabei einen Screenshot (Power + Home-Button). Der Finger bleibt dabei natürlich auf dem Display.
  3. Bevor der Timer abläuft, muss die App nun beendet werden. Ein Doppelklick auf den Home-Button öffnet den App Switcher. Auch, wenn der App-Switcher offen ist, muss der Finger auf dem Display bleiben.
  4. Mit der zweiten Hand zieht man nun die Snapchat-App nach oben weg, um die App zu beenden. Der andere Finger muss bis die App beendet wurde auf dem Display bleiben.
  5. Jetzt deaktiviert man den Flugzeugmodus, öffnet die App wie gewohnt und sieht sich das Bild noch einmal an ohne einen Screenshot zu machen. Der Timer beginnt dabei noch einmal von vorne.
Ich bitte euch diesen Hack nicht zu verwenden, wenn eure Gegenseite nichts davon weiß. Ich schreibe trotz alle dem einen Blogpost darüber, in der Hoffnung, dass Snapchat selbst das ganze mitbekommt und diesen Bug rauspatcht.

Happy Snapping! (Ich finde die App immer noch unsinnig.)