Das Lesen einer PDF-Datei aus einem Assets-Ordner in einer Android-Anwendung erfordert einige spezifische Schritte.
Im Wenn Sie den bereitgestellten Code verwenden, tritt ein Problem mit dem für die Datei „abc.pdf“ angegebenen Dateipfad auf. Der verwendete Pfad „android.resource://com.project.datastructure/assets/abc.pdf“ ist falsch.
Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:
Hier ist der aktualisierte Code mit den erforderlichen Änderungen:
<code class="java">public class SampleActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); CopyReadAssets(); } 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()); } Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType( Uri.fromFile(file), "application/pdf"); startActivity(intent); } private void copyFile(InputStream in, OutputStream out) throws IOException { byte[] buffer = new byte[1024]; int read; while ((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } } }</code>
Dieser aktualisierte Code kopiert die Datei „abc.pdf“ korrekt. Kopieren Sie die Datei in den internen Speicher der Anwendung und verwenden Sie den richtigen Dateipfad, um die PDF-Datei in einem PDF-Viewer eines Drittanbieters zu öffnen.
Das obige ist der detaillierte Inhalt vonWie lese ich eine PDF-Datei aus dem Assets-Ordner in einer Android-Anwendung richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!