Eine PDF-Datei aus dem Assets-Ordner lesen
Problem:
Beim Lesen einer PDF-Datei aus der Anwendung Assets-Ordner wird die Fehlermeldung „Der Dateipfad ist ungültig“ angezeigt, nachdem eine Anwendung zum Öffnen der Datei ausgewählt wurde.
Lösung:
Das Problem liegt in der Dateipfad zur PDF-Datei. Um dies zu beheben, befolgen Sie diese Schritte:
1. Kopieren Sie die PDF-Datei in das Dateiverzeichnis der Anwendung.
<code class="java">private void CopyReadAssets() { AssetManager assetManager = getAssets(); InputStream in = null; OutputStream out = null; File file = new File(getFilesDir(), "abc.pdf"); try { in = assetManager.open("abc.pdf"); out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE); copyFile(in, out); in.close(); in = null; out.flush(); out.close(); out = null; } catch (Exception e) { Log.e("tag", e.getMessage()); } }</code>
Dieser Code kopiert die Datei „abc.pdf“ aus dem Assets-Ordner in das Dateiverzeichnis der Anwendung und stellt so sicher, dass Sie Zugriff auf die Datei haben.
2. Aktualisieren Sie die Absicht, den neuen Dateipfad zu verwenden
<code class="java">Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType( Uri.parse("file://" + getFilesDir() + "/abc.pdf"), "application/pdf");</code>
Dieser Code aktualisiert die Absicht so, dass sie auf die kopierte PDF-Datei im Dateiverzeichnis der Anwendung verweist.
3. Berechtigung zum Schreiben in den externen Speicher hinzufügen
<code class="xml"><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /></code>
Fügen Sie diese Berechtigung zur Datei AndroidManifest.xml hinzu, um der Anwendung die Berechtigung zu erteilen, für Dateivorgänge auf den externen Speicher zuzugreifen.
Jetzt wird die Die Anwendung sollte die PDF-Datei erfolgreich lesen und anzeigen, wenn der Benutzer auf die DOCS-Schaltfläche klickt.
Das obige ist der detaillierte Inhalt vonWie öffne ich eine PDF-Datei aus dem Assets-Ordner in Android?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!