How to write file into DCIM directory exactly where camera does?

后端 未结 5 566
暖寄归人
暖寄归人 2021-01-20 19:14

Suppose I am writing an alternative Camera application and wish to write images exactly into the same place as Camera does and name them exactly in the same name Camera does

5条回答
  •  青春惊慌失措
    2021-01-20 19:51

    I've found this code useful for choosing the last used DCIM/Camera folder.

    String getDCIMCamera() {
        try {
            String[] projection = new String[]{
                    MediaStore.Images.ImageColumns._ID,
                    MediaStore.Images.ImageColumns.DATA,
                    MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME,
                    MediaStore.Images.ImageColumns.DATE_TAKEN,
                    MediaStore.Images.ImageColumns.MIME_TYPE};
    
            Cursor cursor = getContentResolver().query(
                    MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                    projection,
                    null,
                    null,
                    MediaStore.Images.ImageColumns.DATE_TAKEN + " DESC");
            if (cursor != null) {
                cursor.moveToFirst();
                do {
                    String path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
                    if (path.contains("/DCIM/")) {
                        File file = new File(path);
                        path = file.getParent();
                        cursor.close();
                        return path;
                    }
                } while (cursor.moveToNext());
                cursor.close();
            }
        }
        catch (Exception e) {
        }
        return "";
    }
    

提交回复
热议问题