在我的应用程序中,我使用一个按钮来启动相机应用程序并将图片保存到 sdCard 上的特定文件夹中,并按当前日期和时间命名。当我硬编码图片的名称时,它工作正常,但如果我试图在名称中输入日期,它根本不起作用。
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), Constants.IMAGE_FOLDER_URI);
imagesFolder.mkdirs();
Date d = new Date();
CharSequence s = DateFormat.format("MM-dd-yy hh:mm:ss", d.getTime());
File image = new File(imagesFolder, s.toString() + ".jpg"); //this line doesn't work
Uri uriSavedImage = Uri.fromFile(image);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivity(imageIntent);
如果我输入:
s = "some_name";
然后它就可以工作了,但是我需要图像名称中的当前日期和时间。
最佳答案
冒号 :
不是文件名中的有效字符,这就是它无法创建此类文件的原因。
尝试将您的名称模式更改为如下所示:
CharSequence s = DateFormat.format("MM-dd-yy hh-mm-ss", d.getTime());
关于android - 使用名称中的当前日期和时间将图像保存到 sd 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15728269/