Mit einem (PDF) Link eine lokale PDF Datei öffnen

S

SCR

Neues Mitglied
0
Hallo,
was unter Windows einfach zu machen ist, geht auf dem Handy offenbar anders oder gar nicht!
Ich habe eine lokale PDF-Sammlung vorliegen, auf die ich von einer anderen Stelle ueber Hyperlinks zugreifen moechte. Das koennte ebenfalls eine PDF-Seite sein oder aber auch eine html-Seite. Auf diese Weise kann ich naehmlich unterschiedliche Arten von Inhaltsverzeichnissen anlegen, analog zu mehreren Playlisten fuer eine Musikdatensammlung . Geht das auf Android ueberhaupt?
Wichtig: Ich suche nach einer Loesung die lokal funktioniert und keine Netzanbindung erfordert.
Kann jemand vermitteln?
 
Zuletzt bearbeitet von einem Moderator:
Bearbeitet von: Anz - Grund: Thread Titel etwas angepasst - Gruß Anz
@SCR Ging früher mal, jetzt meines Wissens nach nicht.

Das liegt dara, dass ein Browser nur auf das eigene Downloadverzeichnis zugreifen kann bzw. ansonsten nur auf Mediendateien zugreifen darf (jpg, mp3 usw.)

Das ist die Sicherheitspolitik von Google.

Du kannst natürlich - mit gutem Dateimanager - im browsereigenen Downloadpfad was ablegen. Aber selbst dort wird noch an den vorinstallierten Dateimanager übergeben vor dem Öffnen.

Allgemein ist vielleicht die Idee über das Organisieren über Browser mit Hyperlinks keine gute.

Alternativ vielleicht eine Datenbank. Oder eine gute Notizapp, in der man eine PDF-Datei an eine Notiz hängen kann. Da kann man kategorisieren in Ordner und zusätzlich bequem verschiedene Schlagworte vergeben, nach der man dann seine Sachen wiederfindet.
 
@SCR Du brauchst einen Dateiexplorer, der die Funktion "Öffnen mit..." anbietet. Dann wählst du PDF, Bild, Video etc. aus und öffnest die Datei mit einem Browser. Schon hast du die Adresse, die du in den Link wie gewünscht einfügen kannst.
Beiträge automatisch zusammengeführt:

@SCR Geht sogar noch einfacher: Installiere dir den Mixplorer. Darin kannst du über die Kategorieansicht das gewählte Medium auswählen und über die Eigenschaften bekommst du sofort die URI-Adresse angezeigt.
 
Zuletzt bearbeitet:
Ihr macht das kompliziert 😀
Bei meinem Samsung mit Android 13 drücke ich lange in "Eigene Dateien" auf die Datei und im Dreipunktemenü gibt es "Zum Startbildschirm hzfg".
Wenn der Dateimanager bei dir das nicht kann, Total Commander und Ghost Commander können das genauso mit Android 13 und lange auf die Datei drücken.
 
@KalleMerkt
Es gab diese Anforderung:
SCR schrieb:
Auf diese Weise kann ich naehmlich unterschiedliche Arten von Inhaltsverzeichnissen anlegen, analog zu mehreren Playlisten fuer eine Musikdatensammlung .
 
@KalleMerkt Du machst es dir zu einfach! Der TE will keine Verknüpfung auf seinem Himescreen haben. Das kann ich auch nirgends hier rauslesen. Er möchte einen Link in einer PDF- oder HTML-Seite haben, der zu einer anderen PDF führt und diese öffnet. Das geht nur über URIs. Genau diese URIs zeigt dir der Mixplorer an, so wie ich es beschrieben habe.
 
  • Danke
Reaktionen: mausbock
@KalleMerkt Oder so, wie bei Android üblich über URIs. Das ist die systemeigene Vorgehensweise, die alle Apps verwenden. Es gibt bei Android keine App, die direkten Zugriff auf die Mediendateien im Dateisystem hat. Alles wird über Provider geregelt, die mit Datenbanken arbeiten. Die Adresse dieser Datenbankeinträge sind die URIs. Dein Webserver wäre nur ein Overlay für diese Vorgehensweise, denn er macht es auch nicht anders. Also warum nicht direkt diesen Weg nehmen?
 
Vielen Dank erst mal fuer Eure Muehen. Ich bin noch am pruefen, ob die eine oder andere Moeglichkeit so gehen koennte.
Var1) Die Methode von @holms mit der Notiz-App halte ich erst mal nicht fuer sinnvoll, da ich hier die ausgewaehlten files ja nicht verlinke, sondern abspeichere. Das fuehrt bei mehreren Verzeichnissen zur Speicherverschwendung und wenn ich den Inhalt eines PDF-Files aendern will, dann muss ich das ggf. gleich mehrfach wiederholen. Nein, ich brauche eine Bibliothek und parallel dazu die verschiedenen Link-Listen.

Var2) Das ist die Datenbank. Hierbei fange ich leider bei Null an. Da weiss ich weder welches Tool sich eignet noch wie man dann die Link-Listen erstellt. Moeglich ist auch, dass am Ende ich das gleiche Problem wieder habe und nicht weiss, wie die Dateien sich oeffnen lassen.

Var3) Macht mir aktuell am meisten Hoffnung, aber da bin ich leider noch nicht ganz durch. Ich bekomme URL's angezeigt,
wie z.B. "content://com.mixplorer.silver.file/228837136!s/file1.jpg" oder ""content://com.mixplorer.silver.file/228837131!/TMP/file2.pdf". Diese kann ich dann in einem beliebigen Browser aufrufen und "Voila", das gewuenschte Programm startet und zeigt mein PDF oder JPG. Aber verstehen tue ich das nur zur Haelfte. Es sieht so aus, als wuerde der Mixplorer als eine Art "Plugin" im Browser laufen, welcher dann das gewuenschte Programm aufruft. Wenn ich nun ca. 5 Verzeichnisse anlegen werde, mit ca. 300 Links,
- wie sicher ist es, dass sich die oben rot dargestellte Nummer nicht mehr aendert ???
- und funktioniert dieser Weg auch Geraeteuebergreifend??? Es ist davon auszugehen, dass andere die Loesung uebernehmen wollen.
 
@SCR Hier ist es etwas näher beschrieben:
Android: Getting a file URI from a content URI?


Grundsätzliches:

Android arbeitet so: Mediendateien können anhand ihres MIME-Types bestimmt werden. Nach dieser Einteilung legt Android Datenbanken an.

Natürlich kümmert sich ein bestimmter Dienst, auch Provider genannt, darum. Hier ist es com.android.providers.media, der auch als Medienspeicher bekannt ist. Es gibt 2 Datenbänke:

- internal.db (Mediendateien System)
- external.db (Mediendateien Benutzer)

Würdest du dein Handy zurücksetzen auf Werkseinstellungen, wäre external.db leer.

Dich interessiert vornehmlich nur external.db und die Gliederung innerhalb der Datenbank ist im Anhang auf dem Screenshot zu sehen.


Nutzung der Datenbanken:

Öffnet eine App eine Mediendatei, muss sie den Provider danach fragen. Der kramt aus der Datenbank den entsprechenden Eintrag hervor und übergibt ihn der App. Die App weiß jetzt, wie und wo sie darauf zugreifen muss, um den Inhalt zu öffnen. Die verwendete URI ist prinzipiell ein Dateipfad, nur wird auf eine Datenbank zugegriffen.
Der Mixplorer bspw. übergibt wiederum dir als User seinen Pfad, mit dessen Hilfe du auf die Datenbank zugreifen kannst. Er kann dir aber nicht den Pfad geben, den er vom Provider bekommen hat. Den musst du selber beim Provider anfordern (Sicherheitsgründe). Stattdessen läuft der Zugriff über den Mixplorer, der wiederum Zugriff zur Datenbank hat. Daher ist in der URI auch der Mixplorer vermerkt.

Willst du selber direkt auf die Datenbank zugreifen, brauchst du den richtigen Pfad dazu. Dieser setzt sich aber ganz einfach zusammen.

Bsp.: Du hast ein Bild gespeichert und willst es öffnen. Das heißt, du brauchst eine Datei aus der external.db. Genauer noch, aus der Kategorie "Images". Dort ist jedes Bild (Eintrag in der Datenbank) mit einer ID versehen, die fortlaufend vergeben wird. Anhand meines Links oben, kann die URI schon fast gebildet werden:

content://media/external/images/media/[ID]

content = Inhalt (des Dateisystems)
media = Art des Providers, der Inhalt bereitstellt
external = Art der Datenbank
images = Kategorie innerhalb der Datenbank
media = die gesamte Mediendatei
ID = ID des Eintrages

So setzt sich die URI zusammen und ermöglicht von überall im System Zugriff auf die gewünschte Mediendatei.
 

Anhänge

  • Screenshot_20230111-170313.png
    Screenshot_20230111-170313.png
    163 KB · Aufrufe: 71
Zuletzt bearbeitet:
chrs267 schrieb:
@KalleMerkt Oder so, wie bei Android üblich über URIs. Das ist die systemeigene Vorgehensweise, die alle Apps verwenden. Es gibt bei Android keine App, die direkten Zugriff auf die Mediendateien im Dateisystem hat. Alles wird über Provider geregelt, die mit Datenbanken arbeiten. Die Adresse dieser Datenbankeinträge sind die URIs. Dein Webserver wäre nur ein Overlay für diese Vorgehensweise, denn er macht es auch nicht anders. Also warum nicht direkt diesen Weg nehmen?
Du kannst mit dem Webserver direkt den blanken Dateinamen benutzen. Den rest fügt der Server hinzu.
 
@KalleMerkt Wie ich gerade sehe, funktioniert ein direkter Aufruf auch mit file:///[PATH]/[FILE].
 
@chrs267
Weder mit Bromite noch mit Firefox bei mir. Die können nur content. Daher der Webserver. Android 13, bei altem Android und Firefox ging das.

So sieht content bei mir aus:
content://com.ghostsq.commander.FileProvider/FS/L3N0b3JhZ2UvZW11bGF0ZWQvMC9Eb3dubG9hZA/Bookmarks.html

Das geht nicht:
file:///storage/emulated/0/Download/Bookmarks.html
 
Zuletzt bearbeitet:
@KalleMerkt Firefox kommt nur mit content:// klar. Aber darum geht es ja nicht. Es soll ein Link in eine HTML oder PDF eingebettet werden. Bei HTML ist das kein Problem mit einer Content-URI aus dem Mixplorer. Das funktioniert wunderbar.
 
@chrs267
1. Du hast von file:/// geschrieben.
2. Ich habe einen content link auf dem Homescreen für meine bookmarks und den muss ich ca. alle zwei wochen neu machen, da kommt dann content nicht verfügbar. Hast du content von einer App schon länger genutzt?
 
Ja, "content nicht verfuegbar" habe ich auch schon mehrfach gelesen. Und die Sache mit "file://" hat bei mir auch nicht geklappt, entgegen mancher Loesungsvorschlaege aus dem Netz.

Im Moment habe ich den Eindruck, dass die Loesung mit dem Webserver am vielversprechendsten klingt, da ich mich dort nicht um die "ID" kuemmern muss, sondern lt. @KalleMerkt den direkten File-Namen benutzen kann. Das hat auch den Charme, dass genau dieser Loesungsweg von weiteren Nutzern der PDF-Bibliothek benutzbar wird.

Leider bin ich nicht so schnell mit der Umsetzung. "Webserver" ist wieder Neuland fuer mich. Da muss ich fuer mich erst mal den grundsaetzlichen Umgang damit klaeren. Und es stellt sich schon jetzt die Frage, wie die Bildungsvorschrift fuer den Link in der HTML-Datei auf dem Desktop aussieht, damit ich zunaechst den Webserverver und dann die Ziel-PDF-Datei aufrufe.
 
@SCR Welche URIs hast du denn verwendet? Du merkst ja selber, auch beim Webserver musst du die Links eingeben. Diese doppelte Handhabung (Link > Server > Datei) wollte ich umgehen (Link > Datei).
 
Beispiel: Ich moechte die Datei "test4.pdf oeffnen
1) Gemaess Dateimanager liegt sie unter: SD-Karte/Download/Z_TMP/test4.pdf
2) Jetzt oeffne ich die Datei mit dem Mixplorer und finde dort unter Eigenschaften folgenden Eintrag:
"content://com.mixplorer.silver.file/228837131!/Z_TMP/test4.pdf"
3) Diesen trage ich als URL im Standardbrowser ein und nach Rueckfrage "Oeffnen oder Herunterladen" oeffnet sich die Datei

Was mir bei diesem Prozedere auffiel ist, dass die Datei mit dem Mixploerer wirklich erst geoeffnet werden muss, bevor der Aufruf ueber den Browser funktioniert. Wenn ich die Datei im Dateimanager nur umbenenne nach "test5.pdf" und Schritt 2) weglasse , dann oeffnet sich die Datei ueber den Browser nicht, obwohl ich auch hier die Anpassung auf test5.pdf durchgefuehrt habe.
Ich fuerchte, trotz Eurer umfangreichen Erklaerungen weiss ich leider immer noch nicht genau, was ich da gerade mache. Wie saehe denn in diesem Beispiel die URL aus, die immer funktionieren wuerde?
 
SCR schrieb:
dann oeffnet sich die Datei ueber den Browser nicht, obwohl ich auch hier die Anpassung auf test5.pdf durchgefuehrt habe.
Aber du siehst doch diese lange Zahl in der URI. Die hat natürlich eine Bedeutung. Denn vergleichst du jetzt die tatsächliche URI mit der angepassten URI, sollte das erkennbar sein. Die Gegenprobe ist doch ganz einfach durchzuführen. Meine URI funktioniert nicht, also schaue ich mir die des Mixplorers an und vergleiche mal.
 
Zuletzt bearbeitet:
Hmm, die angepasste Nummer vom Browser stimmt exakt mit der des Mixplorers ueberein, Ehrenwort!!!
Den Beweis darueber erbringe ich, in dem ich den Browser einfach nur refreshe, nachdem ich die Datei wenigstens ein Mal mit dem Mixplorer geoeffnet habe. > Browserlink wird erst danach gueltig !!!
 

Ähnliche Themen

A
Antworten
10
Aufrufe
418
Blechle
Blechle
Z
Antworten
0
Aufrufe
169
Zerra
Z
Skogtroll
  • Skogtroll
2
Antworten
23
Aufrufe
404
Rookie19
Rookie19
Zurück
Oben Unten