blitz-time アプリ開発ブログ

Androidアプリ開発などのTips集

【Androidアプリ開発】カメラ撮影を連続で実施

アプリからカメラアプリを起動して、撮影した写真を取り込むにはIntentを利用します。

しかし、カメラアプリを起動し、撮影を終了すると、アプリも終了し、元のアプリに戻ってしまいます。

カメラで撮影した写真を連続で取り込むには、カメラアプリでの撮影後、撮影した写真を一時的に保存し、再度カメラアプリを起動します。必要な写真を撮影した後でもカメラアプリが起動しますが、終了する場合は「BACKキー」で終了すればよいです。

 final static public int REQUEST_CODE_MULTI_ADD_CAMERA = 892;

    List<Uri> listMultiCameraPhoto;

    private void launchMultiCameraAdd(){
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        ((Activity)mContext).startActivityForResult(intent, REQUEST_CODE_MULTI_ADD_CAMERA);
    }

    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch( requestCode ){
            case REQUEST_CODE_MULTI_ADD_CAMERA:
                if( resultCode == Activity.RESULT_OK ) {
                    Uri uri = data.getData();
                    listMultiCameraPhoto.add(uri);
                    launchMultiCameraAdd();
                }else{
                    registPushedCameraPhoto();
                }
                break;
        }
    }

    public void registPushedCameraPhoto(){
        // listMultiCameraPhotoにプッシュしたUriの写真をまとめて処理
    }