Screenshot einer Activity erstellen und abspeichern

Ich gehe davon aus das die App von sich selbst auch ohne Root Screenshots machen kann. Wäre übel wenn es ohne Root immer ginge. .png benutze ich ja sowieso. Die Frage ist ob die App noch angezeigt wird wenn der "Screenshot" gemacht wird. Es kann sein das das schon längst etwas anderes angezeigt wird.

Wer will und Zeit hat kann ja mal eine App schreiben die fb2png in .onStop() aufruft, und schauen was passiert.
 
Ja, werde ich heute evtl. mal testen. Ein anderes Problem könnte noch die Statusleiste sein... Die muss dann weg bei normalen Anwendungen und bei Vollbild-Anwendungen besser nicht.
 
OK, habs jetzt mit fb2png getestet:
- jede Anwendung fragt nach Root Rechten beim Erstellen der Bilder
- Screenshots werden rechtzeitig erstellt
- Statusleiste entgegen meiner Vermutung nicht abgebildet
- Androidify nicht abgestürzt, konnte aber auch keinen Screenshot erstellen (Könnte mein Fehler sein)

Ich glaube das sollte nochmal wer testen, der mehr Ahnung hat von Android und Java :)
mein benutzter Code:
Code:
String[] fb2pngcmd = { "/data/local/fb2png", r.packageInfo.getAppDir() + "/applicationThumbnail.png" };
try {
    Runtime.getRuntime().exec(fb2pngcmd);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

bzw. beim 1. Versuch hatte ich fb2png über su gestartet.
 
Zuletzt bearbeitet:
FelixL schrieb:
Ich gehe davon aus das die App von sich selbst auch ohne Root Screenshots machen kann.

Aber ich vermute mal nicht über den framebuffer
 
Ich hatte gehofft über den Framebuffer :/. Allen Apps root geben ist nicht Sinn der Sache :D
 
Es gibt halt nur einen Framebuffer, somit müsste dieser für alle sichtbar sein.
Theoretisch könnten dann aber andere Apps diesen die ganze Zeit an nen Server schicken ;)
 
Root No Longer Required For Taking Screenshots In Android 2.3.3 | Android News, Apps, Games, Phones, Tablets - Android Police

:p

Edit: Mist, geht nur Systemintern...
http://stackoverflow.com/questions/5161544/how-to-take-screenshots-in-android-2-3-3-without-root


Edit2: Okay, mal angenommen man will ordentliche und echte Screenshots, dann braucht man eine System-App die das für einen erledigt, bzw einen System-Service. Dieser muss dann entweder

a) überprüfen ob der Auftrag von der App kam die im Vordergrund ist, und dann den Screenshot öffentlich abspeichern, wie es jetzt auch ist.
oder b) nicht überprüfen ob der Auftrag von der App im Vordergrund kam, dann aber die Screenshots nicht öffentlich abspeichern.
Ansonsten wäre es möglich das eine fremde App die Schnittstelle kapert um für sich selbst Screenshots zu machen. Wenn die Screenshots öffentlich sind darf nur die App im Vordergrund den Auftrag geben. Und selbst dann ist es grenzwertig, da eine Schadapp ein einzelnes Pixel im Vordergrund anzeigen könnte und dann einen Screenshot von der App dahinter bekommt ;)

Also bleibt als eigentlich einzige Lösung ein geschlossenes System. Was ich aber blöd finde.
 
Zuletzt bearbeitet:
FelixL schrieb:
Also bleibt als eigentlich einzige Lösung ein geschlossenes System. Was ich aber blöd finde.

Was soll daran blöd sein?
Hau das doch einfach in den ActivityManager (oder so) und gut is^^, der sollte doch als root laufen?
 
Zuletzt bearbeitet:

Ähnliche Themen

DerOhneNick
Antworten
3
Aufrufe
1.080
DerOhneNick
DerOhneNick
J
Antworten
1
Aufrufe
1.120
mblaster4711
mblaster4711
Foh
Antworten
8
Aufrufe
1.701
Foh
Foh
Zurück
Oben Unten