Pfad bei Android einstellen

Startseite Foren Deutsches LiveCode-Forum Pfad bei Android einstellen

Schlagwörter: 

Ansicht von 6 Antwort-Themen
  • 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
      Verwalter

      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
      Verwalter

      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
      Verwalter

      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“)

Ansicht von 6 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.