4

我不明白为什么人们说它保存在外部存储中,因为当我使用此代码并且我签入我的 SD 卡时没有文件

代码这个

        OutputStream imageFileOS;
        int imageNum = 0;
        Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        File imagesFolder = new File(Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES), "Punch");
        if(!imagesFolder.exists()){
            imagesFolder.mkdirs(); // <----
        }
        String fileName = "image_" + String.valueOf(imageNum) + ".jpg";
        File output = new File(imagesFolder, fileName);
        while (output.exists()){
            imageNum++;
            fileName = "image_" + String.valueOf(imageNum) + ".jpg";
            output = new File(imagesFolder, fileName);
        }
        Uri uriSavedImage = Uri.fromFile(output);
        imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);

当我运行代码并检查时,它在“内部存储器/图片/打孔/image_0.jpg”中有文件,但在 SD 卡中看不到(SD 卡 = 外部存储卡 16 GB)请帮助我..

4

1 回答 1

2

我认为你对做什么感到困惑getExternalStorageDirectory

它获取设备制造商指定的主存储目录。这通常是“sdcard”。您评论中指定的“External_sd”实际上是辅助存储目录,在给定方法中不会返回。

这仍然不是受保护的内部存储,并且可以在连接时由 PC 安装和访问。

来自安卓文档:

注意:不要被这里的“外部”这个词弄糊涂了。最好将此目录视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并且在所有应用程序之间共享(不强制执行权限)。传统上这是一张 SD 卡,但它也可以作为设备中的内置存储实现,与受保护的内部存储不同,并且可以作为文件系统安装在计算机上。

于 2012-11-30T11:58:35.003 回答