ログイン

Androidアプリ開発~カメラアプリ編4~

 2020.11.10 ゴリラーブログ ブログ 異世界ゴリラー新里

異世界ゴリラー新里です。

さっそくですが、前回に続いてファイルの保存先を追加していきましょう。

 

最初に保存先を決める関数を作ります。

保存するファイル名を、日時(年月日_時分秒)とすることで被らない様にしています。

 

private final static int REQUEST_CAMERA = 714;

public String currentPhotoPath; //追加



protected void onCreate(Bundle savedInstanceState) {

    ~省略~

}



//////////////////↓追加↓//////////////////

private File createImageFile() throws IOException {

    // Create an image file name

    String timeStamp = new     SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());

    String imageFileName = "JPEG_" + timeStamp + "_";

    File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);

    File image = File.createTempFile(

            imageFileName,  // prefix

            ".jpg",         // suffix

            storageDir      // directory

    );



    currentPhotoPath = image.getAbsolutePath();

    return image;

}

//////////////////↑追加↑//////////////////

 

次に上記関数を使用してカメラアプリを呼び出します。

startActivityForResult(intent, REQUEST_CAMERA);を「//」でコメントアウトし、

保存先を指定する様に変更する事で実現できます。

 

◆変更前

if (intent.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(intent, REQUEST_CAMERA);
}

 

◆変更後

protected void onCreate(Bundle savedInstanceState) {
	~省略~
	if (intent.resolveActivity(getPackageManager()) != null) {
    	//////////////////↓追加↓//////////////////
    	File PhotoFile = null;
    	try {
           PhotoFile = createImageFile();
       	} catch (IOException ex) {
        }

        if (PhotoFile != null) {
            Uri photoURI = FileProvider.getUriForFile(MainActivity.this,
                 getApplicationContext().getPackageName() + ".fileprovider",
                PhotoFile);
            intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
            startActivityForResult(intent, REQUEST_CAMERA);
        }
        //////////////////↑追加↑//////////////////
        //startActivityForResult(intent, REQUEST_CAMERA);    //変更
    }
}

これで撮った写真が保存されますが、ギャラリーアプリ等には表示されません。

尚、今回保存された写真は、設定→ストレージ→ファイル→Android→data→com.camera.myapplication→files→Picturesに保存されています。

 

ギャラリーに表示するには別途処理を追加する必要があります。

そちらは次回追加しようと思います。

 

 

© 2020 Mountain Gorilla Co., Ltd. 

プライバシーポリシー

%d人のブロガーが「いいね」をつけました。