Android:在SD卡上写下可在库中查看的照片文件

问题描述 投票:0回答:2

我正在尝试找到一种方法(与android kitkat和下一代兼容)在SD卡上写照片并让它们对画廊应用程序可见。

  • 如果我使用Environment.getExternalStoragePublicDirectory,三星设备将返回内部存储器中的路径(/ storage / emulated / 0 / ...)
  • 如果我使用Context.getExternalFilesDirs,则有两个结果:第一个在内部存储上,第二个在SD卡上。好的,我可以在里面写,照片在SD卡上。但我无法在Galery应用程序中看到它:'(

我试图直接在/ storage / externalSdCard / DCIM /上写,但当然我不能,因为我正在运行kitkat。

android sd-card
2个回答
0
投票

好的,我可以写在里面,照片在SD卡上。但我在Gallery应用程序中看不到它

首先,当你写完文件后,在你的flush()上调用getFD().sync(),然后是close(),然后是FileOutputStream

然后,使用MediaScannerConnection及其scanFile()方法获取由MediaStore索引的新编写的文件。


0
投票
void saveImage() {
        File filename;
        try {
            String path = Environment.getExternalStorageDirectory().toString();

            new File(path + "/folder/subfolder").mkdirs();
            filename = new File(path + "/folder/subfolder/image.jpg");

            FileOutputStream out = new FileOutputStream(filename);

            bitMapImg.compress(Bitmap.CompressFormat.JPEG, 90, out);
            out.flush();
            out.close();

            MediaStore.Images.Media.insertImage(getContentResolver(), filename.getAbsolutePath(), filename.getName(), filename.getName());

            Toast.makeText(getApplicationContext(), "File is Saved in  " + filename, 1000).show();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
© www.soinside.com 2019 - 2024. All rights reserved.