Assets フォルダーから PDF ファイルを読み取る
問題:
Android アプリケーションでは、提供されたコードを使用してアセット フォルダーから PDF ファイルを読み取ろうとすると、「ファイル パスが無効です。」というエラー メッセージが表示されます。
コード:
関連コードセクションは次のとおりです:
<code class="java">File file = new File("android.resource://com.project.datastructure/assets/abc.pdf"); Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(file), "application/pdf"); startActivity(intent);</code>
解決策:
問題は、File オブジェクトに指定されたパスにあります。正しいパスでは、getAssets() を使用してアセット フォルダーから PDF ファイルを取得する必要があります。
<code class="java">AssetManager assetManager = getAssets(); InputStream in = assetManager.open("abc.pdf"); OutputStream out = openFileOutput("abc.pdf", Context.MODE_WORLD_READABLE); // Copy PDF file to internal storage copyFile(in, out); // Create Intent and URI for file in internal storage Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://" + getFilesDir() + "/abc.pdf"), "application/pdf"); startActivity(intent);</code>
追加メモ:
以上がAndroid アプリがアセット フォルダーから PDF を読み取ろうとすると「ファイル パスが無効です」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。