PCスペック
Windows10 64bit
メモリ 8GB
プロセッサ Intel Core i7
テスト用端末(京セラDIGNO OS:7.1.1 )
Android Studio 3.5.1
現在、Androidのアプリを勉強を始めて2か月くらいです。
こちらのサイトを見てカメラアプリの作成をしています。
https://codezine.jp/article/detail/9913
上記サイトのコードをすべて入力しテスト用の端末で動作させるとカメラも起動し撮影もでき画像も保存されます。
ところが、保存される画像のファイル名が記載したコードのようになりません。
〇コード抜粋(ファイル名作成部分)
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date now = new Date(System.currentTimeMillis());
String nowStr = dateFormat.format(now);
String fileName = "UseCameraActivityPhoto_" + nowStr +".jpg";
本来であれば、2019年11月23日14:24:30の撮影であれば
「 UseCameraActivityPhoto_20191123142430.jpg 」
というファイル名で保存されるはずなのですが、
「 1574486664396.jpg 」
というようなコードというかシリアル値のような数値で保存されてしまいます。
アクティビティやレイアウトの名称もサンプルプロジェクトと同じにしたり
APIも15(サンプルが15だったので)から色々変えて入力しなおしたのですが解消されません。
何か見落としているのかもしれないのですが、今現在解決に至りません。
どなたか解決に向けたアドバイスがありましたらよろしくお願いします。
コード追記しました。
public void onCameraImageClick(View view) { if(ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE ) != PackageManager.PERMISSION_GRANTED) { String[] permissions = {Manifest.permission.WRITE_EXTERNAL_STORAGE}; ActivityCompat.requestPermissions(this, permissions, 2000); return; } SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); Date now = new Date(System.currentTimeMillis()); String nowStr = dateFormat.format(now); String fileName = "UseCameraActivityPhoto_" + nowStr +".jpg"; ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.TITLE, fileName); values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); ContentResolver resolver = getContentResolver(); _imageUri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values); Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, _imageUri); startActivityForResult(intent, 200); }
更に追記します
public class UseCameraActivity extends AppCompatActivity { private Uri _imageUri; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if(requestCode == 200 && resultCode == RESULT_OK) { ImageView ivCamera = (ImageView) findViewById(R.id.ivCamera); ivCamera.setImageURI(_imageUri); } } public void onCameraImageClick(View view) { 省略 }
あなたの回答
tips
プレビュー