我正在尝试将位图保存到“图片”目录中。这是代码

            File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);

            File file = new File(path, "test1.PNG");
            try {
                   path.mkdirs();
                   OutputStream out = new FileOutputStream(file);
                   mBitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
                   out.flush();
                   out.close();

            } catch (Exception e) {
                   e.printStackTrace();
                   Log.w("ExternalStorage", "Error writing " + file, e);
            }

但是执行陷入了OutputStream out = new FileOutputStream(file);我使用了调试器,完整路径返回mnt/sdcard/Pictures/test1.PNGmnt/是导致无法通过OutputStream out = new FileOutputStream(file);的罪魁祸首吗?因为我只能在文件目录中看到sdcard/

谢谢!

最佳答案

您可以使用此Environment.getExternalStorageDirectory()作为mnt/sdcard或sdcard/来获取和访问sdcard目录,该目录取决于设备访问操作系统的方式并使用外部目录,而不必担心此方法返回的是不同的设备和不同的目录。

编辑

要访问外部存储需要权限,并在androidmanifest.xml文件中定义为用户权限

WRITE_EXTERNAL_STORAGE

关于android -/mnt/sdcard和/sdcard有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12564884/

10-10 06:31