2

現在、ユーザーがアーカイブのコンテンツをナビゲートし、アーカイブを抽出し、アーカイブ内のファイルをプレビューできるアーカイブ閲覧アプリケーションに取り組んでいます。私はjava.util.zipAPIを使用しています。ファイルをプレビューするには、ファイルを一時的に抽出し、通常の既存のファイルとして開きます。お分かりかもしれませんが、一時的な抽出を行うための十分なスペースがない場合、ファイルをプレビューできないため、これは良い方法ではありません。に渡しZipInputStreamActivityファイルとして開くための実用的なソリューションはありますか? この問題の別の回避策はありますか? 前もって感謝します。

4

1 に答える 1

2

ContentProvider原則として、を提供する を作成できますZipInputStream

このサンプル プロジェクトでは、 によって作成されたパイプを使用してファイルを提供するContentProviderサポートを作成する方法を示します。パイプの両端を表す のペア (2 要素配列) を返します。配列の 2 番目の要素を使用して、;経由で書き込みます。Android から呼び出しプロセスに渡される配列の最初の要素を返します。呼び出し元は、パイプ経由で転送するものを読み取るために使用します。openFile()ParcelFileDescriptor.createPipe()createPipe()ParcelFileDescriptorsOutputStreamopenFile()openInputStream()

私の場合、InputStreamviaを取得するアセットを送信していAssetManagerます。あなたの場合、あなたはあなたのZipInputStream.

私のサンプル プロジェクトは、PDF ビューアを備えたデバイスで実行されていることを前提としていることに注意してくださいstartActivity()

于 2012-10-12T17:05:42.210 に答える