Kanade Labo

かなで研究所

Android Studio カメラアプリ作成その17(画像ファイルに保存3)

こんにちは かなで です。

前回の答え:画像フォルダへのアクセス権限が必要ですね(唐突

AndroidManifest.xml

という事で、この部分にフォルダへのアクセス権限を追加します。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

厳密には「画像フォルダ」というわけではなく、ストレージ全体へのアクセス権限ですね。

これは最新Androidバージョンでは、ちょっと違うみたいです(が、例によってAndroid7.1.1ならこれで行けた)

そして「WRITE」とあるように、書き込みができる権限です。

こちらを追加してあげた後で、一度実行してエミュレータ側にインストールさせます。

ここでちょっと前回のおさらいですが

「共有ディレクトリの画像を保存する場所」に「yyyyMMdd_HHmmss.jpg」とファイル名で保存されるんでしたね。

エミュレータを実行するどうなったでしょうか?

とりあえずエラーは発生せず、カメラ映像は表示されています。

ではファイルは保存されたのか!

を確認するためにはこちら↓

右下のエミュレータと同じ場所にあった「Device File Explorer」を使います。

開くとこのような画面が表示されるので…

storege→emulated→0→Pictures の順番で選択します。

本Androidバージョンでいうところの 「共有ディレクトリの画像を保存する場所」 に当たります。

そして、Picturesを選択しても、中にファイルが確認できません…

ではなぜでしょう?

あっ、あれを忘れていませんか?

その11でやったあれです。

これです!

ここでStoregeへの権限をあげましょ~

さぁ終わりが見えてきましたよ。

改めてアプリを起動して…

Device File Explorerで見てみると…?

あれ…?やっぱり画像が保存されてませんね…

そんな時はこちら↓

Picturesを右クリック→Synchronizeをクリック

シンクロナイズ…同期…たぶん、Device File Explorerで見れる内容を最新にする という事ですね。

そしてクリックしてみたところ…

でた!

日付+拡張子のファイルができました。

※ちなみに、私はこの更新に気づかず、ずっとファイルができないとこの後もずっと試行錯誤を繰り返してました。
 そして、ある時このSynchronizeに触れたら沢山ファイルができてて、一体いつから出来てたんだと…
 皆様もご注意くださいませ。

さて、こちらのjpgファイルをさらにダブルクリックで開くと

こんな感じになりました。

ちゃんと画像が保存されてますね!(向きがおかしいけど(笑

試しに再度アプリを起動すると、ちゃんと画像ファイルが作成できることを確認できました。

そんなわけで、「カメラを起動して、画像ファイルに保存」まではこれで完成です!

ただ待ってください。

わかる人はとっくに気づいてると思いますが、これでは「起動時に1回だけ画像を保存するだけ」ですよね?

さすがにそのままでは使えないので、

次は「起動したら、5分おきに保存を繰り返す」という仕組みを作りたいと思います。

あとは向き調整(笑

今回は以上でした。

最後までお読みいただきありがとうございました。
気になることがあったら、コメント頂けると嬉しいです。
自主学習も兼ねて記事にするかもしれません。

-AndroidStudio