0

これが私のコードです

            Uri fileUri = Uri.fromFile(file);
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setData(fileUri);
            startActivity(intent);

そのため、アプリ内で指定したファイルが開きます。私がテストした最初のいくつかのファイルは-pdfファイルで、問題なく動作しました。そして今、私はそれが完全なボンカーであることを知っています、私がpdfとは異なるものを選択するたびに-それは明らかにpdfファイルのプログラムを使用して選択されたファイルを開こうとし、私にこのメッセージを与えます

The document cannot be opened because it is not a valid PDF document

面白いこと:)何が起こっているのかアイデアはありますか?

4

2 に答える 2

1

Intent.setTypeを使用して、開こうとしている各ファイルのMIMEタイプを設定します。特定のmimetypeを処理できるアプリのみが開かれるようにする

編集:MimeTypeMap.getMimeTypeFromExtensionを使用して、ファイルのMimetypeを取得できます

于 2012-08-24T17:51:55.290 に答える
0

開きたいタイプのタイプを明示的に指定してみてください。たとえば

Intent intent = new Intent();
Uri path = Uri.fromFile(filename);
intent.setDataAndType(path, "application/pdf");
startActivity(intent);

または、何らかの理由でPDFを電子メールで送信したい場合は、

Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("application/pdf");
emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(emailIntent, "Send email using:"));
于 2012-08-24T19:48:53.200 に答える