我们如何从 Sdcard 获取图像,该图像具有基于Android中时间戳的唯一名称



我知道如何从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();
    }
}

最新更新