今回は完全に自分用の記事になっております。内容は、カメラで撮影した写真のディレクトリを取得する方法についてです。撮影した画像は、大体は外部ストレージ(SDカードのような)に保管されます。他のアプリを消しても写真を残しておきたいという時は、外部ストレージから取り出してやりとりしてあげればいいのです。今回は、外部ストレージにアクセスしてパブリックなファイルに新しいファイルを作ってくれる方法を書き残しておきたいと思います。(くどいようですが今回は完全に自分用なのでご容赦ください)
通常androidのような端末は、通常撮影した画像はDCIMというファイルに保存されます。DCIMとは、android本体に内蔵されているファイルのことで、アプリのカメラで撮影した画像を除く画像は、全てこのファイルに収納されます。このDCIMに保存されていれば、SDカードさえあればどのデバイスでも画像を共有して使うことが出来ます。このDCIMから続くディレクトリを取得するにはgetExternalStoragePublicDirectoryという関数を使う方法があります。この関数を使えば、パブリックなディレクトリ(自分のandroid付属のカメラで撮影した画像がある場所)をピンポイントで取得してくれるのです。urlを取得して加工したい時とか便利そうですね。
<pre>File imageStorageDir = new File( Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "VG" );</pre> <pre>picFile = new File(imageStorageDir + File.separator + "IMG_" + String.valueOf(System.currentTimeMillis()) + ".jpg");</pre>
System.out.printlnで出力したものがこちら
I/System.out: /storage/emulated/0/DCIM/VG/IMG_1551774023376.jpg
new fileの引数にDCIMに続くVGファイル、更に先のIMG、数値の入ったipgが連結されて出力されているのがわかると思います。
今ではもう古い技術ですが、覚えておくとディレクトリ取得のモデルというか応用で役に立つので損はないかと思っております。