2012-03-16 15 views
1

デバイス間では、内部と外部の設定がさまざまです。私のEvoには内部ストレージと外部SDカードがありますが、同年のDroid Incredibleには内蔵ストレージ、内部SDカード(〜8GB)、外部SDカード(デフォルトの1GB)があります。恐らく他の構成もあり、今後はさらに進んでいく予定です。Android - すべての内蔵ストレージと外部ストレージを見つける

しかし、利用可能な記憶メディアの数を列挙すると、私は、Environmentのようなものがあります。ここでは、File []やそれ以外のものを返すgetExternalStorageDirectory()のようなことができます。利用可能なすべてのストレージメディアを列挙する、より安全で一般化された方法はありますか?/mnt /に移動してそこにリストを取得して、マウントされたすべてのボリュームを表示するだけですか?

答えて

1

利用可能なすべてのストレージメディアを列挙する、より安全で一般的な方法はありますか?

SDKの観点からは、内部ストレージ(getFilesDir())があり、外部ストレージ(Environment.getExternalStorageDirectory())があります。 Android 1.x/2.xでは、これらは別々のパーティションになります。 Android 3.0以降では、1つのパーティションになります。

定義上、SDKが提供する以上のことを行うことは安全ではありません。パーティション名、その役割、それらから読むことができるかどうか、書き込むことができるかどうかなどは保証されていません。すべての可能性のデータベース(モデル、OSのバージョン、パーティション、およびそれらのデータベース)は、の新しいデバイスとOSのバージョンに対して、永久に古いバージョンのになります。

Media Storeで他のパーティションのメディアファイルにアクセスできるようにすること。たとえば、オンボードの外部ストレージに加えてSDカードを提供する一部のデバイスメーカでは、SDカードのファイルのインデックスを作成するため、SDカードに含まれるメディアファイルがMediaStoreに表示されます。これにより、メーカーが提供する他のパーティション(SDカードなど)でコンテンツを使用することができますが、AFAIK MediaStoreでは、そのようなパーティションに新しいファイルを置くことはできません。

関連する問題