在Java Android Studio应用程序中,可以通过以下步骤来正确重命名相机拍摄的照片:
File photoDirectory = new File(Environment.getExternalStorageDirectory(), "Photos");
if (!photoDirectory.exists()) {
photoDirectory.mkdirs();
}
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// 创建一个用于保存照片的文件
File photoFile = createPhotoFile();
if (photoFile != null) {
Uri photoUri = FileProvider.getUriForFile(this, "com.example.android.fileprovider", photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
}
createPhotoFile()
方法中,可以使用以下代码来创建一个唯一的文件名:private File createPhotoFile() throws IOException {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
String imageFileName = "IMG_" + timeStamp + "_";
File storageDir = new File(Environment.getExternalStorageDirectory(), "Photos");
return File.createTempFile(imageFileName, ".jpg", storageDir);
}
onActivityResult()
方法中,可以获取到拍摄的照片,并进行重命名:@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
// 获取拍摄的照片
File photoFile = getLatestPhotoFile();
if (photoFile != null) {
// 重命名照片
File renamedFile = renamePhotoFile(photoFile);
if (renamedFile != null) {
// 在这里可以使用重命名后的照片文件进行其他操作
}
}
}
}
private File getLatestPhotoFile() {
File storageDir = new File(Environment.getExternalStorageDirectory(), "Photos");
File[] files = storageDir.listFiles();
if (files != null && files.length > 0) {
Arrays.sort(files, new Comparator<File>() {
@Override
public int compare(File file1, File file2) {
return Long.compare(file2.lastModified(), file1.lastModified());
}
});
return files[0];
}
return null;
}
private File renamePhotoFile(File photoFile) {
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
String newFileName = "IMG_" + timeStamp + ".jpg";
File renamedFile = new File(photoFile.getParent(), newFileName);
if (photoFile.renameTo(renamedFile)) {
return renamedFile;
}
return null;
}
通过以上步骤,你可以在Java Android Studio应用程序中实现正确重命名相机拍摄的照片。请注意,上述代码中的"com.example.android.fileprovider"是一个示例文件提供者的授权名称,你需要根据自己的应用程序包名进行修改。
领取专属 10元无门槛券
手把手带您无忧上云