Pfad bei Android einstellen

Startseite Foren Deutsches LiveCode-Forum Pfad bei Android einstellen

Schlagwörter: 

Dieses Thema enthält 6 Antworten und 2 Teilnehmer. Es wurde zuletzt aktualisiert von  Klaus Major vor 1 Woche, 6 Tagen.

  • Autor
    Beiträge
  • #13394

    wupp66
    Teilnehmer

    Hallo liebe Forum Gemeinde,
    gibt es die Möglichkeit, eine Pfad bei Android zu suchen (Ordner), den dann in einer Variable abspeichern und dann dauerhaft weiter zu verwenden.
    Als Beispiel:
    ich möchte einen Ordner anlegen auf meinem Android Handy, darin Dateien speichern, z.B. PDF Dateien oder Bilder und möchte diese dann von einer App aus aufrufen.
    ich hatte mir jetzt vorgestellt, das ich mittels der App, diesen Ordner auf meinem Handy ansteuern kann (suchen) und dann das Verzeichnis in einer Variable speichern kann, so das weitere Funktionen in der App diesen Pfad nutzen können.
    Dieses möchte ich aber nach Möglichkeit nur einmal machen, z.B. in den Einstellungen der App. So das ich nicht jedesmal wenn ich die App öffne den Pfad wieder neu suchen muss.

    Freue mich auf euere Antworten
    Lieben Gruß
    Andreas

  • #13396

    Klaus Major
    Moderator

    Hi Andreas,

    das wird am "Sandboxing" scheitern!
    Wir haben keinen Zugriff auf das Android Dateisystem, ausser auf das,
    was uns LC mit den diversen specialfolderpath() Codes anbietet.

    Gruß

    Klaus

  • #13401

    wupp66
    Teilnehmer

    Ich könnte den Pfad also mit dem specialfolderpath() auf den Dokumenten Ordner bei Android setzen, wenn ich das richtig verstanden habe, der wird durch diesen Befehl ja unterstützt.
    ich könnte also mit dem Befehl:

    set the folder to specialfolderPath("documents") into tFileContents

    Damit hätte ich dann den Path in die Variable tFileContents gespeichert. Oder liege ich da falsch ?

    Gruß
    Andreas

  • #13413

    wupp66
    Teilnehmer

    Hallo zusammen,

    ich erkläre mal eben das Problem:

    ich habe mit

    on mouseup
    // global LHData (diese Variable enthält normalerweise den Dateinamen)

    if the environment is "mobile" then
    put specialFolderPath("external documents") into programmPfad
    else
    put the filename of this stack into programmPfad
    set the itemDelimiter to "/"
    delete the last item of programmPfad
    end if
    launch document "/NE15_2016_06_01.pdf"

    end mouseup

    versucht die Datei NE15_2016_06_01.pdf aufzurufen.
    Die Datei steht in dem Verzeichnis, der Pfad ist auch darauf gesetzt.
    Trotzdem wird mir die Datei nicht angezeigt.
    Was mache ich Falsch ?

    Gruß
    Andreas

  • #13417

    Klaus Major
    Moderator

    Hi Andreas,

    Ich könnte den Pfad also mit dem specialfolderpath() auf den Dokumenten Ordner bei Android setzen, wenn ich das richtig verstanden habe, der wird durch diesen Befehl ja unterstützt.
    ich könnte also mit dem Befehl:
    set the folder to specialfolderPath("documents") into tFileContents
    Damit hätte ich dann den Path in die Variable tFileContents gespeichert. Oder liege ich da falsch ?

    das ist schon korrekt, aber Dein Befehl wird nur einen ERROR ausspucken:

    ...
    ## set the folder to set the folder to specialfolderPath("documents") into tFileContents
    put FILES(specialfolderPath("documents")) into tFileContents
    ...

    Aber damit hast Du nur eine bereits bekannte Info in eine Variable geschrieben.
    Andere Programme können immer noch nicht darauf zugreifen, EGAL, wo Du sie abspeicherst.

    Jede App (apk Package) bringt ihren eigenen -> specialfolderpath("documents")
    mit, der in einem geschützten Bereich innerhalb des APK-Packages liegt!

    Lies unbedingt im Internet über Sandboxing nach!

    on mouseup
    // global LHData (diese Variable enthält normalerweise den Dateinamen)
    if the environment is "mobile" then
    put specialFolderPath("external documents") into programmPfad
    else
    put the filename of this stack into programmPfad
    set the itemDelimiter to "/"
    delete the last item of programmPfad
    end if
    
    ## Das ist ein relativer Pfad, wir benötigen aber den absoluten Pfad:
    ##launch document "/NE15_2016_06_01.pdf"
    launch document (programmpfad & "/NE15_2016_06_01.pdf")
    end mouseup

    versucht die Datei NE15_2016_06_01.pdf aufzurufen.
    Die Datei steht in dem Verzeichnis, der Pfad ist auch darauf gesetzt.
    Trotzdem wird mir die Datei nicht angezeigt.
    Was mache ich Falsch ?

    Du musst "the result" checken, das gibt eventuell einen Hinweis, was nicht klappt:
    ...
    // global LHData (diese Variable enthält normalerweise den Dateinamen)
    if the environment is "mobile" then
    put specialFolderPath("external documents") into programmPfad
    else
    put the filename of this stack into programmPfad
    set the itemDelimiter to "/"
    delete the last item of programmPfad
    end if
    launch document "/NE15_2016_06_01.pdf"
    if the result <> EMPTY then
    answer "Error:" && the result
    end if
    end mouseup`
    Gruß

    Klaus

  • #13419

    wupp66
    Teilnehmer

    Hallo Klaus,

    habe deinen Code jetzt mit aufgenommen, aber auf meinem Handy wird mir kein Fehler angezeigt.
    habe mir dann nochmal den Pfad anzeigen lassen und überprüft, ob die Datei dort drin steht.
    Pfad stimmt, und die PDF Datei befindet sich in diesem Ordner. Trotzdem wird mir die Datei nicht angezeigt.

    on mouseup
    // global LHData (diese Variable enthält normalerweise den Dateinamen)
    if the environment is "mobile" then
    put specialFolderPath("external documents") into programmPfad
    else
    put the filename of this stack into programmPfad
    set the itemDelimiter to "/"
    delete the last item of programmPfad
    end if
    launch document "/NE15_2016_06_01.pdf"
    if the result <> EMPTY then
    answer "Error:" && the result
    end if
    put programmPfad into fld "Anzeigepfad"

    end mouseup

    Mit put programmPfad into fld "Anzeigepfad" habe ich mir den Pfad zur Kontrolle anzeigen lassen.
    Aber mehr bekomme ich einfach nicht.
    Auf dem PC unter Windows wird mir angezeigt
    Error: can't open file

    gruß
    Andreas

  • #13421

    Klaus Major
    Moderator

    Pardon, mein erstes Skript solltest Du ausprobieren, das mit dem korrekten ABSOLUTEN Pfad zur PDF:
    ...
    launch document (programmpfad & "/NE15_2016_06_01.pdf")
    ...
    Du setzt den Pfad in eine Variable, benutzt diese dann aber nicht!
    Oder vielleicht erst einmal prüfen, ob diese Datei auch wirklich vorhanden ist.
    Das Bedeutet eher, ob sie für Diene App sichtbar ist!
    ...
    answer (there is a file (programmpfad & "/NE15_2016_06_01.pdf"))
    ## Sollte TRUE anzeigen. Falls nicht, gilt Sandboxing wohl auch für EXTERNAL DOCUMENTS!
    launch document (programmpfad & "/NE15_2016_06_01.pdf")
    ...

Du musst angemeldet sein, um auf dieses Thema antworten zu können.