まず、申し訳ありませんが、私はそれを見つけることができません。私はリモートリソースからアプリケーション内のドキュメントをダウンロードしています。文書がダウンロードされたら、その文書をユーザー用に開く必要があります。私が知りたいのは、PdfやTiffを扱い、デフォルトのアプリケーションで起動するアプリケーションがあるかどうか調べる方法です。Android:保存したファイルを既定のアプリケーションで開きます
ありがとうございます。
Intent viewDoc = new Intent(Intent.ACTION_VIEW);
viewDoc.setDataAndType(
Uri.fromFile(getFileStreamPath("test.pdf")),
"application/pdf");
PackageManager pm = getPackageManager();
List<ResolveInfo> apps =
pm.queryIntentActivities(viewDoc, PackageManager.MATCH_DEFAULT_ONLY);
if (apps.size() > 0)
startActivity(viewDoc);
私はファイルのバイト[]がある場合、このメソッドは、私はsaしたくない場合は動作しますそれをディスクに入れますか? –
@Tom Fobear:他のアプリケーションが読むことができる場所にディスクに保存する以外に選択肢はありません。つまり、外部ストレージに格納するか、またはアプリケーションローカルファイルストアに 'MODE_WORLD_READABLE'ファイルとして格納するか、通常の(拒否)ファイルとしてアプリケーションローカルファイルストアに格納し、コンテンツプロバイダを使用しますそれを他のアプリで利用できるようにする。 – CommonsWare
問題が発生しました。私のデバイスには、あなたのPackageManagerメソッドを使用して自分の意図をサポートしていると主張する複数のアプリがありました。ファイルが正しく保存されていることがわかりました。たとえば、Adobe Readerをダウンロードすると、自分の活動から起動したpdfを見ることができます。可能性のある選択肢をハードコーディングする以外に、良いアプリをチェックするより合法的な方法がありますか?ありがとうございました。 –