2016-04-06 23 views
0

長年のiOSデベロッパー、高度なAndroidプログラマー(私は思ったほど高度ではありません...)Android外部SDカードアクセス

Android搭載ストレージのオプションを理解しようとしています。私のアンドロイドデバイスには14Gig SDカードがあります。

私はコード

String strDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS)+ File.separator + "MyFolder"; 

を書くときには(ファイルマネージャで表示)内部デバイス上の「Documentsフォルダ」に置かれます。

パスが

ストレージ//0

をエミュレートし、(ファイルマネージャた内容に応じて)私のSDカードが

ストレージ/ extSdCard

なぜ環境がないように見えます。 getExternalStoragePublicDirectory私の内臓カードへのパスを教えてください。

私は、ファイルを外部カードに保存するための経路に私を逃しています。私はこれが4.1のSDカードアクセスのOSの変更に関わるものだと私は理解していると思うが、何が欠けているのか分からない。

私はEnvironment.getExternalStorageDirectory does not return the path to the removable storageまで読んでいますが、それでも明確ではありません。私のアプリは現在、getExternalStoragePublicDirectoryを使ってファイルを保存していますが、私のユーザーは代わりにSDCardに保存するオプションを要求していますか?

+0

使用しているAndroidのバージョンは? – Sibidharan

答えて

4

Environment.getExternalStoragePublicDirectoryが私のインテリジェントカードへのパスを与えてくれるのはなぜですか?

external storageremovable storageではないためです。どちらもinternal storageです。

しかし、私のユーザーは、代わりにSDCardに保存するオプションを要求していますか?

アンドロイド4.4以降で

、いずれかの(リムーバブルストレージ、ドライブ/ Dropboxの/他のクラウドプロバイダ、等を含む、ユーザーが保管場所を選択できるようにする)the Storage Access Frameworkを使用するか、またはuse getExternalFilesDirs() on Context。後者の方法では、配列に2つ以上の要素がある場合はFile[] —を返します。最初の部分を除くすべては、読み書き可能なリムーバブルストレージ上の場所です。 Android 4.4以降に搭載されている端末では、リムーバブルストレージの任意の場所に書き込むことはできません。

関連する問題