1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. tukaa, 19.08.2010 #1
    tukaa

    tukaa Threadstarter Neuer Benutzer

    Hallo zusammen,

    ich wollte ein screenshot app entwickeln. Leider gibt es keine möglichkeit mit Android SDK das zu realisieren. Aber in Vebindung NDK lässt sich möglicherweise das machen.

    Ich habe viel recherchiert und ein code gefunden, welche mit c gebunden ist. Leider kann ich es nicht am laufen bringen.

    Beschreibung Projekt map ScourceCode

    im grundegenommen manipuliert er die Scource code von ADB Framebuffer Service und lässt von dev/graphics/fb0 ein bild erstellen.

    Leider bekomme ich immer ein error "screenshot.raw file not found!".
    Ich denke, dass die bufferreader.c nicht aufgerufen lässt. Wenn ich die Activity ansehe, finde keine NDK codes, obwohl da ein jni-Ordner mit Android.mk und c-file gibt.

    Oder mach ich es ganz falsch bzw. anders??? Bitte hilf mir. Ich habe vor ein Monate mit Android-Programmierung angefangen und daher habe ich nicht viel Erfahrung.

    hat jemand vielleicht erfahrung in sowas? Bitte Bitte hilfe.
    Ich danke schonmal für eure Mühe.


    Tuka
     
  2. Kranki, 19.08.2010 #2
    Kranki

    Kranki Ehrenmitglied

    Code:
    ls -al /dev/graphics/fb0
    crw-rw----    1 root     graphics   29,   0 Aug 19 13:47 /dev/graphics/fb0
    Wird nicht klappen.
     
  3. tukaa, 19.08.2010 #3
    tukaa

    tukaa Threadstarter Neuer Benutzer

    bitte erklär mir warum?
    ich habe keine Ahnung in linux also kann nicht viel von den Code verstehen.

    Ich verwende hier

    HTC desire mit root(2.1)
    Eclipse Galileo + Android SDK & NDK
    Windows 7 64 bit + Cygwin

    Gibt es andere möglichkeiten, ein screenshot zu erstellen??? Es gibt doch mehrere screenshot apps im market. Die haben doch irgend ein weg gefunden screenshot zu erstellen.

    MfG Tuka
     
  4. FelixL, 20.08.2010 #4
    FelixL

    FelixL Ehrenmitglied

    Afaik brauchen alle Screenshot-Apps root, oder?
    Wenn nun dein Code oben root benutzen will muss er sich den erst holen.
    Ich glaube das meinte Kranki.
     
  5. the_alien, 20.08.2010 #5
    the_alien

    the_alien Android-Lexikon

    Der Besitzer von /dev/graphics/fb0 ist root, der hat Lese- und Schreibrechte. Die Gruppe ist graphics, auch die haben Lese- und Schreibrechte. Alle andere nicht.
    Du bist alle anderen ;)
     
  6. tukaa, 21.08.2010 #6
    tukaa

    tukaa Threadstarter Neuer Benutzer

    Also soweit ich es verstanden habe macht er es so.

    Zuerste erstellet er ein screenshot.bmp in bufferreader.c

    Code:
    int screenshotHandle = open("/data/data/com.koushikdutta.screenshot/screenshot.bmp", O_WRONLY | O_CREAT);
    danach die fb0 auslesen

    Code:
    framebufferHandle = open("/dev/graphics/fb0", O_RDONLY);
    danach schreiben und ...

    in Activity macht er es so:

    Code:
    Process sh = Runtime.getRuntime().exec("su -c sh"); // Super User????? oder doch nicht???
    
    OutputStream os = sh.getOutputStream();
    
    inal String file = "/data/data/com.koushikdutta.screenshot/screenshot.bmp";
    
    int screenshotUid = getUidForPackage("com.koushikdutta.screenshot");
    String screenshotUser = getUserForPackage("com.koushikdutta.screenshot");
    writeCommand(os, "rm " + file);
    writeCommand(os, "mkdir /sdcard/dcim");
    writeCommand(os, "mkdir /sdcard/dcim/Screenshot");
    writeCommand(os, "/data/data/com.koushikdutta.screenshot/screenshot");
    writeCommand(os, "chown root." + screenshotUser + " " + file);
    writeCommand(os, "chmod 660 " + file);
    writeCommand(os, "exit");
    os.flush();
    aber ich frag mich, wo er die native code aufruft. Deswegen wird es kein screenshot.bmp erstellt und ich kriege error "file not found" (meiner meinung nach :( )

    Wisst ihr ob es noch andere möglichkeiten für screenshot gibt.
     
  7. the_alien, 21.08.2010 #7
    the_alien

    the_alien Android-Lexikon

    Hast du denn Rootrechte und "su"? Sonst kannst du fb0 nicht auslesen.
     
  8. tukaa, 21.08.2010 #8
    tukaa

    tukaa Threadstarter Neuer Benutzer

    habe ich !!! wenn ich es starte fragt es nach SuperUser und ich bestätige. lasse ein screenshot machen aber kriege fehler "screenshot.raw not found". Wie gesagt ich denke, dass die bufferreader.c läuft nicht. Habe selbst versucht mit NDK was zu basteln, leider habe ich es noch am laufen gebracht. Leider bin ich ein anfänger, was android betrift. Vor allem NDK habe ich null Ahnung. Denkt ihr, dass es funktioniern, wenn ich es richtig anstelle?

    Und nochmals eine Alternative wäre willkomen.

    Grüße Tuka
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[Offen] Android Layout funktioniert nicht Android App Entwicklung 08.09.2017
[ERLEDIGT] LL zur Laufzeit erstellen, Abstand zwischen LL und LL möglich ? Android App Entwicklung 06.09.2017
[OFFEN] App schließt nach Öffnen sofort Android App Entwicklung 04.09.2017
[ERLEDIGT] Um einen Zusatz in einem Programm unter Android zu machen Android App Entwicklung 22.08.2017
[GESCHLOSSEN] Random ListItem ausgeben funktioniert nicht mehr Android App Entwicklung 13.08.2017
[OFFEN] Bild per Intent an ListView übergeben und anzeigen Android App Entwicklung 13.08.2017
[ERLEDIGT] Auffangen von nativen C Exeptions in Java Code? Android App Entwicklung 08.08.2017
[OFFEN] SVN Commit in Android Studio funktioniert nicht mehr Android App Entwicklung 07.08.2017
[ERLEDIGT] Android Studio Erste App-Programmierung Android App Entwicklung 02.08.2017
[ERLEDIGT] Android O Neue Fonts in XML Methode Android App Entwicklung 27.07.2017

Users found this page by searching for:

  1. android ndk screenshot

Du betrachtest das Thema "Android NDK Screenshot mittels native C/C++ ???" im Forum "Android App Entwicklung",