1

私が抱えている問題を誰かが助けてくれるだろうかと思っていました。同じ問題の多くの投稿を見てきましたが、まだこの問題を解決できません。PDF文書を作成しました。作成した PDF ファイルを res/raw フォルダーに配置し (assets フォルダーにも配置しようとしました)、アプリ内で開こうとしています。ボタンをクリックするとダイアログが開き、Adobe Reader、Amazon Kindle、または Polaris Office を使用してアクションを完了するように選択できます。しかし、PDFを開こうとすると、「有効なPDFドキュメントではないため、ドキュメントを開くことができません」というエラーが表示されます。

以下は、私が試してpdfを開くために使用しているコードですが、これが機能しない理由について何か考えはありますか?

String fileName = "android.resource://" + getPackageName() + "/" + R.raw.user_manual_v1_0_0;            
File file = new File(fileName);

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setDataAndType(Uri.fromFile(file), "application/pdf");

startActivity(intent);
4

2 に答える 2

4

リソースからPDFを開くように設定されているPDFビューアはほとんどなく、アセットから直接読み取ることができないため、機能しません。

ファイルをファイルシステムにコピーする方が適切です。それを外部ストレージにコピーすると、その上でPDFビューアを開くことができます。これを内部ストレージ(デフォルトではアプリ専用)にコピーするとContentProvider、PDFをビューアに提供するためのを作成できます。このサンプルアプリケーションは、後者のアプローチを示しています。

于 2013-01-15T17:18:04.687 に答える
0

アプリが外部ファイルにアクセスするためのアクセス許可を忘れないようにしてください。次の 2 行をマニフェストに配置します。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
于 2015-04-02T16:51:51.963 に答える