Datenaustausch zwischen Desktopanwendung und App

  • Hallo,


    ich habe folgendes vor. Ich möchte eine Windowsanwendung schreiben die Dateien ans das Handy sendet, ich diese in der App auslese, bearbeite und sie wieder mit ADB auslese.
    Das funktioniert auch soweit mit ADB aber ich muss die Dateien wegen den Berechtigungen im Pfad /data/local/tmp/test ablegen.
    Von meiner App aus kann ich auch auf diese Dateien zugreifen. Nur kann ich von der App aus die Dateien nicht löschen oder neue Dateien dort ablegen.
    Das funktiert auch nicht in /sdcard/test denn dort kann ich nicht von der App aus zugreifen (Permission denied).
    Hat jemand eine Idee wie ich ain Datenaustausch hinbekomme oder welches Verzeichnis ich von beiden Systemen aus schreiben kann. 8|


    Danke im Voraus
    Eddi

  • Hallo Michael,


    habe bisher
    adb shell chmod 777 /sdcard/path/to/dir/datei probiert und da bekomme ich folgene Meldung: Operation not permitted


    wenn ich
    adb shell su -c chmod 777 /sdcard/path/to/dir/datei


    eingebe kommt die Meldung das die Parameter su und -c nicht bekannt sind.


    In der adb Hilfe steht auch nichts von diesem Parameter.


    Ich benutzte die ADB aus


    C:\Users\eddi\AppData\Local\Android\sdk\platform-tools\adb.exe



    Gruss Eddi

  • Hi versuche es mal nach einandeR
    adb shell, "enter"
    su
    chmod 777 /sdcard/path/to/dir/datei


    Wobei dir das wenig nützten wird denn wie du sagst kannst du vom deiner app nicht auf die sd Karte zugreifen.


    Ist dein Handy gerootet kannst du auch auf denn app Speicher unter /data zugreifen.


    Um auf die sdkarte von der app aus zuzugreifen hast du auch die premission im Manifest und zur Laufzeit gesetzt.

  • Hallo Jogimuc,


    habe das jetzt in der shell so eingegeben:


    adb shell (enter gedrückt)


    dann su eingegeben und es kommt folgende Meldung:


    generic_x86:/ $ su
    /system/bin/sh: su: not found


    Ich habe das auch in der cmd mit Admin-rechten probiert.


    Gruss Eddi

  • Teste su - c
    Mit der shell bist du schon mal verbunden.
    Kann auch sein das das das su Kommando auf einen nicht gerootet en Handy nicht zur Verfügung steht. Su - c ist eigentlich nur für den nachvolgenden Befehl der dann mit root ausgeführt wird.

  • Hallo Jogimuc,


    ich bekomme die selbe Fehlermeldung.


    Ich kann die Dateien auf die sd-karte übertragen, ich sehe die Dateien auch in AndroidStudio (File-Explorer).
    Ich bekomme nur ein "Permission denied" wenn ich versuche eine Datei mit der App zu öffnen.
    Und ich kann die Rechte nicht ändern, wie ja bereits diskutiert wird.


    Wenn ich die Dateien in /data/local/test ablege kann die Rechte setzen und die Dateien in der App öffnen,
    nur kann ich obwohl alle rechte auf 777 sind nicht von der App aus in diesem Verzeichnis löschen oder eine neue Datei anlegen.


    Gruss Eddi

  • Hi so jetzt nochmal.
    1. auf welche sd-Karte willst du zugreifen die intenne oder die echte Externne? Auf die Externne ist meistens etwas geht oft nicht so richtig.


    2. hast du die Premissions richtig gesetzt? ABb API 23 reicht es nicht mehr sie nur im Manifrest zu setzen sie müssen zur laufzeit angefortert werden . Das wird auch der Fehlere sein denn ich glaube nicht das an den Dateirechten ligt wenn du sie schon richtig in der app beim erstellen der App setzt.
    Erstelle eine neue Datei in der App und speichere estwas darin.
    Mit dem Chmode wird das wenig zutuhen haben zumindesten wenn die datei von der App Erstellt wird. beim erstellen vom pc und selber auf sie sd-karte copieren ja dann schon eher.
    https://developer.android.com/…ng/permissions/requesting


    3.Um auf die Daten auf der Sd-Karte mit der ADB zuzugreifen brauchst du keine Root-Rechte also auch kein "su".
    ohne Root auf dem Handy gibt es kein su ist eigentlich auch logisch.
    SU brauchst du um in /data/data/... zu kommen für die sdKarte normalerweise nicht.


    4. zeige mal den code wie du auf die kartte zugreifst.


    Wie gesagt teste erst mal eine neue Datei mit der App in dem gewünschten Ordner zu erstellen. Wen das geht geht auch alles andere.

  • Hallo jogimuc,


    habe mir die Berechtigungen angeschaut. Jetzt geht es ich kann auf der SD-Karte lesen und schreiben. :thumbup:
    Ich wäre da nicht so schnell drauf gekommen. :thumbup:


    Jetzt habe ich nur noch ein letztes Problem, denn das löschen will nicht funktionieren obwohl jetzt die Schreibrechte vorhanden sind.
    Es kommt folgende Meldung: java.lang.IllegalArgumentException: File /sdcard/test/file.txt contains a path separator
    Ich kann ja den path separator nicht weglassen, wie ist das zu verstehen.


    Code
    deleteFile("/sdcard/test/file.txt");


    Gruss Eddi

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!