2017-01-09 5 views
0

私はネットワークからたくさんのデータ(約5 GB)をダウンロードするアプリケーションを開発しています。内部のストレージディスク容量のために、私は "sdカード"の宛先を選択する:内部のSDカードまたは外部のSDカード(マイクロSD)を許可したい。 製造元ごとにパスが変更できること、どのようにすべての「sdカード」のリストを取得できるかを検討してください。 (たとえSamsungのタブレットでのみ使用される内部アプリケーションであっても)Android、外部ストレージディレクトリのリストを取得する方法

+1

'すべての "SDカード" 利用可能? '???複数のカードを扱うことができるデバイスを見たことがありますか? – greenapps

+0

'内部アプリケーション' ??内部アプリケーションとは何ですか?そしてあなたはそれで何をしたいですか? – greenapps

答えて

0

これはいくつかの方法で行うことができます。

最初に: '古い方法'を使用してくださいgetExternalFilesDirs()。最初のエントリは外部メモリです。 (getExternalFilesDir()で配信されたものと同じ)。 2番目のエントリは、SDカードです。 3番目はUSB OTGドライブです。

第2:Storage Access Frameworkを使用し、Intent.ACTION_OPEN_DOCUMENT_TREEで使用させます。

3番目:Android 7のみ。 Use Volume Manager

0

これを試してみてください:

内部メモリ:

String extStore = System.getenv("EXTERNAL_STORAGE"); 
File f_exts = new File(extStore); 

外部SDカード:

String secStore = System.getenv("SECONDARY`_STORAGE"); 
File f_secs = new File(secStore); 
+1

'System.getenv(" SECONDARY_STORAGE ");'。現在、ほとんどのデバイスで「ヌル」を配信します。あなたのコードはそれのために用意されていません。 – greenapps

関連する問題