Удалить изображения с SD-карты, а также из галереи - PullRequest
1 голос
/ 03 апреля 2012

Я сохраняю некоторые изображения на SD-карте следующим образом:

File dir = new File(fullPath);
                        if (!dir.exists()) {
                            dir.mkdirs();
                        }
                        String id = Integer.toString(i+1);
                        OutputStream fOut = null;
                        File file = new File(fullPath, id);
                        file.createNewFile();
                        fOut = new FileOutputStream(file);

                        // 100 means no compression, the lower you go, the stronger the compression
                        bm.compress(Bitmap.CompressFormat.PNG, 100, fOut);
                        fOut.flush();
                        fOut.close();

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

Однако, когда я удаляю эти изображения с SD-карты, они сохраняются в галерее.

File path = new File(path);
            File[] lstFile;

            if(path.exists()){
                lstFile = path.listFiles();
                for(int i =0; i<lstFile.length;i++){
                    File file = lstFile[i];
                    file.delete();
                }
                path.delete(); 
            }

Почему эти изображения остаются в галерее, и как я могу удалить их?Есть ли способ избежать, во-первых, чтобы эти изображения сохранялись в галерее?

1 Ответ

1 голос
/ 03 апреля 2012

О! Я не заметил

«Можно ли вообще избежать сохранения этих изображений в галерее?»

Да, есть. Удалить

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

и сохраните файл, используя только класс File, а не класс MediaStore, целью которого является именно управление галереей.

...