我知道如何从SD卡检索图像,但我找不到检索包含唯一时间戳及其名称的特定图像的解决方案。
当我存储到外部目录时,如何从具有唯一时间戳的SD卡中获取图像。
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
//folder stuff
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "QR_" + timeStamp + ".png");
Uri uriSavedImage = Uri.fromFile(image);
如何从SD卡中检索上面的图像?
下面的代码是从文件名以"QR_[eight int '-' six int]"开头的文件夹中检索文件
private void getFiles() {
Uri uri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
String path = imagesFolder.getAbsolutePath();
final String where = MediaStore.Images.Media.DATA + " like ? ";
final String[] args = new String[]{path + File.separator + "QR_" + "%"};
final String[] columns = {MediaStore.Images.Media.DATA};
final Cursor cursor = getActivity().getContentResolver().query(uri, columns, where, args, null);
final String pattern = Pattern.quote(path) + "/[^/]*";
if (cursor != null && cursor.moveToFirst()) {
do {
final String curPath = cursor.getString(0);
if (curPath.matches(pattern)) {
final File file = new File(curPath);
if(file.getName().matches("\d{8}-\d{6}")) {
// your file
}
}
} while (cursor.moveToNext());
cursor.close();
}
}