今回は、タイトルにもある通り、Androidアプリでカメラを起動する方法についてです。
なお、カメラの起動には、画面遷移の際に用いられる、Intent を利用します。
参考にさせていただいたサイトはこちらから。
Take photos|Android Developers
https://developer.android.com/training/camera/photobasics
さて、カメラを起動する機能の実装方法ですが、必要なコードは実は下記の2行くらいで済みます。
static final int REQUEST_IMAGE_CAPTURE = 1; // カメラを起動 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
あとは、AndroidManifest.xml の
<uses-feature android:name="android.hardware.camera" android:required="true" />
こちらはカメラを起動する際に必要なので、お忘れなく。
で、写真が無事に撮影できると、onActivityResult() が呼び出されるので、そこで行わせたい処理を記述します。
今回は、ImageView に撮影した写真を表示するように指定しています。
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { Bitmap bitmap; ImageView imageView = findViewById([ImageViewのID]); if( data.getExtras() != null){ bitmap = (Bitmap) data.getExtras().get("data"); if(bitmap != null){ imageView.setImageBitmap(bitmap); } } } }
ここまでを実行すれば、カメラの起動から、撮影した画像の表示までは問題なく動作します。
以上、Androidアプリで Intent を使ってカメラを起動する方法でした。
あとは、画像の保存機能の実装ですが、そこまではまだできていません。
原因としては、ストレージの権限あたりかと。
実装出来たら、その方法についても改めてまとめたいと思います。