0

「意図」を含むstackoverflowのコードフラグメントに基づく:

F_Pdf_File:=    GetHomePath + PathDelim + '_files' + PathDelim + 'lic.pdf';
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setDataAndType(StrToJURI( F_Pdf_File),  StringToJString('application/pdf'));
SharedActivity.startActivity(Intent);

アプリでもSolidExplorerでも、PDFファイルを開くことができませんでした。他のサンプルでは、​​「sdcard/download」でファイルを開くことについて読みました。

ただし、私のファイルはダウンロードする必要があり (いくつかは StartUp に直接配信されます)、アプリケーションの一部 (fe ライセンス契約) であり、ダウンロードやメディアなどのグローバル ディレクトリに配置することはできません。

また、再起動時に削除されないことも重要です。

  1. HomePathにダウンロードするのは良い考えですか?ファイルは大きくなる可能性があります-「getFilesDir()」が最適な場所ですか? ソリューションはプラットフォーム間で機能する必要があり、アプリを削除するときにディレクトリを削除する必要があります...
  2. 開く前に、最初にファイルを /sdcard (または「getCacheDir()」が適切な場所) にコピーする必要がありますか? (パフォーマンスとメモリ空間)

申し訳ありませんが、何度もグーグルで検索した後、ファイルの場所と場所についてますます混乱しました...

4

1 に答える 1

1

ファイルのダウンロード方法によって異なります。

再起動時にファイルが削除されることはありません。アプリのファイルは、その場所によっては、誰かがアプリをアンインストールすると削除されます。

基本的に、内部ストレージと外部ストレージの 2 つの場所があります。デバイスの内部メモリに外部ストレージがあり、デバイスに SD カード スロットもある場合、外部 SD カードはメディア ファイルを保持できますが、これらはアプリとは大きく異なります。

getFilesDir() は、内部ストレージの files/ サブディレクトリを記述します。getExternalFilesDir() は外部ストレージと同じです。Environment.getExternalStorageDirectory() は、外部ストレージ「ルート」を返します。

パフォーマンスはスペースほど問題ではありません。内部ストレージはより制限されています。

コードで何をしようとしているのかわかりません。デバイスで PDF を表示するには、PDF を表示できるアプリが必要であり、PDF が存在する場所からダウンロードする必要があります。Web からのダウンロードについては、DownloadManager を参照してください。外部ストレージにダウンロードされますが、ファイルを内部ストレージにコピーし、終了時に外部コピーを削除できます。

PDFの閲覧についてはお手伝いできません。いくつかのアプリがそれを行いますが、Android には組み込まれていません。

于 2013-09-27T21:22:59.297 に答える