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
        Administrator

          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
              Administrator

                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
                  Administrator

                    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.