12

大量のコンテンツをダウンロードするアプリがあります (ユーザーによって異なりますが、200 MB から 1 GB 以上になる可能性があります)。

現在、このコンテンツはすべて外部ストレージに保存しています。これは、SD カードなど、最も容量の多い領域である可能性が高いためです。これはほとんどの場合問題なく機能しますが、これが必ずしも理想的ではない場合もあります。

ほとんどのタブレットのようにデバイスに外部ストレージが内蔵されていて、SD カード スロットもある場合、外部ストレージの問題は少し複雑になります。アプリは SD カードにインストールできますが、コンテンツは外部 SD カードではなく内蔵ストレージに保存されます。

アプリが SD カードにインストールされている場合、呼び出すとgetFilesDir()SD カードまたは内部ストレージのパスが表示されますか?

そして、これを処理する最良の方法は何ですか? コンテンツを内部ストレージ (SD カード) に保存するか、外部ストレージに保存する必要がありますか?それとも、アプリを起動するときにユーザーに最善のアイデアを尋ねていますか?

4

2 に答える 2

7

アプリは SD カードにインストールできますが、コンテンツは外部 SD カードではなく内蔵ストレージに保存されます。

いいえ。デバイスに外部ストレージがある場合、アプリは外部ストレージにインストールされます。デバイスにSD カードがあるかどうかは関係ありません。

アプリが SD カードにインストールされている場合、getFilesDir() を呼び出すと、SD カードまたは内部ストレージのパスが得られますか?

getFilesDir()アプリがインストールされている場所に関係なく、常に内部ストレージです

于 2012-05-08T11:27:22.210 に答える
1

アプリが SD カードにインストールされている場合、getFilesDir() を呼び出すと、SD カードまたは内部ストレージのパスが得られますか?

No.クラスのgetFilesDir()メソッドは、Context常に内部ストレージへのパスを返します (Android 用語で)。

getFilesDir()ほとんどの場合、によって返されるディレクトリ パスは/data/data/your.application.package.appname/files. ただし、携帯電話や Android のバージョンによって異なる場合があります。

アプリ ファイルを SD カードに保存するには、クラスFile[] getExternalFilesDirs (String type)でメソッドを使用できます。Context通常、2 番目に返されるパスは、microSD カード (存在する場合) のストレージ パスです。

私の電話では、返された 2 番目のパスは、引数として/storage/sdcard1/Android/data/your.application.package.appname/files渡した後でした。nullgetExternalFilesDirs (String type)

Google/Android の公式ドキュメントによると、内部および外部ストレージの用語は、私たちが考えているものとはかなり異なります。

于 2016-08-01T16:03:32.787 に答える