iOSに比べると、Androidでの写真保存はやや複雑です。色々な場所に保存できるし、MediaStoreへの登録もあります。
しかし「細かいことはいいから一般的な場所に置ければいい」というケースも多いでしょう(シンプルなカメラアプリを作りたい人など)。
「Androidで、iOSでいうカメラロールはどこ?」を調べました。
Androidにおける、iOSでいうカメラロールはどこか
下記です。
ユースケース | 場所 |
---|---|
カメラで撮影した画像を保存する | Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) |
アプリで生成した画像を保存する | Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURE) |
MediaStoreへの登録
AndroidではiOSと違い、写真を保存するときには
- 写真を保存する
- MediaStoreに登録する
という二つの手順を踏みます。
Androidでは写真は色々な場所に保存できます。ただ、写真がバラバラの場所にあっては扱いにくいです。そのため、MediaStoreにメタデータを登録することで、それらを一元的に扱えるようになっています。
MediaStoreはMediaScannerで自動登録する仕組みもあるとのことですが、アプリで撮影・生成した画像は能動的に登録することが一般的なようです。
MediaStoreへの登録は、下記の記事が参考になります。
- MediaScannerに登録を依頼する方法
その他参考文献
- Android におけるストレージまとめ
- (公式ドキュメント) ファイルを保存する | Android Developers
- (公式ドキュメント) MediaStore | Android Developers