14

サーバーからダウンロードしたファイルを保存するアプリケーションがあります。これらのファイルは私のアプリケーション専用ではなく、他のアプリケーションからもアクセスできる必要があります。SD カードが存在しない場合に、これらのファイルを保存するための正しいパスを知りたいです。SD カードには、よく知られている API があります -

getExternalStorageDirectory()

内部メモリ内のアプリケーションのプライベート データには -

Context.getFilesDir()

一部のデバイスでは、内部メモリは /emmc/ で表されます。

誰かが /emmc/ について詳しく説明してくれると本当に助かります。私はそれが組み込みメモリカードの略であり、すべてのデバイスに存在するわけではないことを知っています. しかし、それは本当に内部メモリを表していますか? それとも第三の記憶?

openFileOutput()withを使用してファイルを保存する必要がありますMODE_WORLD_READABLEか?

4

2 に答える 2

8

一部のデバイスでは、内部メモリは/emmc/で表されます。

/emmc/一部のデバイスに存在する可能性があり、内部にある可能性がありますが、アプリケーションからアクセスできない可能性があります。また、それがgetExternalStorageDirectory()返される場合を除いて、AndroidSDKの一部ではありません。

しかし、それは本当に内部メモリを表していますか?

いいえ。

それとも3番目の記憶ですか?

デバイスの製造元に問い合わせてください。

MODE_WORLD_READABLEでopenFileOutput()を使用してファイルを保存する必要がありますか?

それは要約で答えることは不可能です。あなたはあなたのファイルが「他のアプリケーションからもアクセス可能であるべきだ」と言っていますが、他のアプリケーションがあなたのファイルを少し気にすることを期待する理由を示していません。他のアプリケーションは、ディレクトリでファイルをスキャンしません。せいぜい、ユーザーが外部ストレージを参照できるようにします。ファイルがある唯一の理由は、アプリケーションが別のアプリケーションをトリガーしてファイルを処理するMODE_WORLD_READABLE場合です(例:) 。ACTION_VIEW Intent

于 2011-04-23T14:21:48.560 に答える