Androidで内部および外部SDカードパスを取得する方法
内部ストレージに保存する方法:
File getDir (String name, int mode)
File getFilesDir ()
上記のメソッドはContext
クラスに存在します
電話の内部メモリに保存する方法:
File getExternalStorageDirectory ()
File getExternalFilesDir (String type)
File getExternalStoragePublicDirectory (String type)
最初は、誰もが電話の内部メモリのルートEnvironment.getExternalStorageDirectory()
を指す を使用していました。その結果、ルート ディレクトリはランダムなコンテンツでいっぱいになりました。
その後、次の 2 つのメソッドが追加されました。
Context
クラスでは、電話の内部メモリにあるアプリ固有のディレクトリを指す を追加しgetExternalFilesDir()
ました。このディレクトリとその内容は、アプリをアンインストールすると削除されます。
Environment.getExternalStoragePublicDirectory()
写真や動画など、よく知られているファイル タイプを一元的に保存するための場所です。アプリをアンインストールしても、このディレクトリとその内容は削除されません。
リムーバブル ストレージ (マイクロ SD カード) に保存する方法
API レベル 19 より前では、SD カードに保存する公式の方法はありませんでした。しかし、多くの人は非公式の API を使用してそれを行うことができます。
正式には、 API レベル 19 (Android バージョン 4.4 - Kitkat)のContext
クラスに1 つのメソッドが導入されました。
File[] getExternalFilesDirs (String type)
アプリケーションが所有する永続ファイルを配置できるすべての共有/外部ストレージ デバイス上のアプリケーション固有のディレクトリへの絶対パスを返します。これらのファイルはアプリケーションの内部にあり、通常はメディアとしてユーザーに表示されません。
つまり、Micro SD カードと内部メモリの両方へのパスが返されます。通常、2 番目に返されるパスは、マイクロ SD カードのストレージ パスです。
Google/Android の公式ドキュメントによると、内部および外部ストレージの用語は、私たちが考えているものとはかなり異なります。