【问题标题】:How to save an image to Camera folder in android?如何将图像保存到android中的相机文件夹?
【发布时间】:2018-02-16 07:43:00
【问题描述】:

我正在尝试将照片保存到我的应用拍摄的相机文件夹中。这就是我正在尝试的

private File createImageFile() throws IOException {

    // Create an image file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    String imageFileName = "PlumFastJob" + timeStamp + "_";
    File storageDir = Environment.getExternalStoragePublicDirectory("Camera");

    if(!storageDir.exists()){

        boolean s = new File(storageDir.getPath()).mkdirs();

        if(!s){
            Log.v("not", "not created");
        }
        else{
            Log.v("cr","directory created");
        }
    }
    else{
        Log.v("directory", "directory exists");
    }

    File image = File.createTempFile(
            imageFileName,  /* prefix */
            ".png",         /* suffix */
            storageDir      /* directory */
    );

    // Save a file: path for use with ACTION_VIEW intents
    currentPhotoPath = image.getAbsolutePath();
    uriOfImage = Uri.parse(image.getPath());
    return image;
}

我也尝试过 Enviornment.Directory_DCIM 和 Environment.Directory_Pictures。但他们都创建了一个名为 DCIM 和 Pictures 的文件夹。

这只是创建另一个名为 Camera 的文件夹并保存它。

这是我的文件提供程序。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="my_images" path="." />
</PreferenceScreen>

【问题讨论】:

    标签: java android


    【解决方案1】:

    现在所有的相机应用都保存在DCIM 目录中的Camera 目录中。

    所以你必须使用

    File dir = new File( Environment.getExternalStoragePublicDirectory(
          Environment.DIRECTORY_DCIM), "Camera");
    

    【讨论】:

    • 这只是抛出一个异常:权限被拒绝。 WRITE_STORAGE 权限处于活动状态。
    【解决方案2】:

    您正在获取路径File storageDir Environment.getExternalStoragePublicDirectory("Camera"); 这将创建名为“Camera”的文件夹

    DIRECTORY_DCIM 图片和视频的传统位置 将设备安装为相机。

    File musicDirectory = new File( getExternalFilesDir(Environment.DIRECTORY_DCIM));
    

    DIRECTORY_PICTURES 放置图片的标准目录 可供用户使用。

    File musicDirectory = new File( getExternalFilesDir(Environment.DIRECTORY_PICTURES));
    

    希望对你有帮助!!

    【讨论】:

    • 我在模拟器上尝试了这两种方法,但它们都创建了一个名为 DCIM 和图片的文件夹。我想把它保存到已经存在的相机文件夹中。
    猜你喜欢
    • 2019-12-12
    • 2011-11-08
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    相关资源
    最近更新 更多