在我的手机图库中显示下载的图像

时间:2012-04-12 16:54:01

标签: android mediastore

我正在尝试告诉我的应用程序,使一些已下载的图像显示在手机的图库中。 图像很好地下载并显示在我的应用程序中,它们没有扩展名,它们的名称只有md5。

这是我试图这样做的方式:

public static void makePhotoAppearOnGallery(Activity activity, String md5) {
        final String extStorageDirectory = Environment
                .getExternalStorageDirectory().toString();
        final String festivalDirectory_path = extStorageDirectory
                + Constants.IMAGES_STORAGE_PATH;
        File imageOutputFile = new File(festivalDirectory_path, "/");
        if (imageOutputFile.exists() == false) {
            imageOutputFile.mkdirs();
        }
        File imageFile = new File(imageOutputFile, md5);
        Bitmap bm = decodeFile(imageFile.getAbsoluteFile());
        OutputStream outStream = null;
        try {
            outStream = new FileOutputStream(imageFile);
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        bm.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
        try {

            outStream.flush();
            outStream.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            MediaStore.Images.Media.insertImage(activity.getContentResolver(), festivalDirectory_path, festivalDirectory_path+"/"+md5, "myDownloadedPics");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        scanFile(imageFile,activity);


    }
     public static void scanFile(File downloadedFile, Context mContext){
         Uri contentUri = Uri.fromFile(downloadedFile);
         Intent mediaScanIntent = new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE");
         mediaScanIntent.setData(contentUri);
         mContext.sendBroadcast(mediaScanIntent);
     }

应用程序在此行崩溃:

MediaStore.Images.Media.insertImage(activity.getContentResolver(), festivalDirectory_path, festivalDirectory_path+"/"+md5, "myDownloadedPics");

收到此消息:

  

java.io.FileNotFoundException:/mnt/sdcard/data/com.example.app/images:open failed:EISDIR(是一个目录)

有人知道它来自何方?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。事实证明,当存在具有相同文件名的文件夹时会发生此错误。例如,我有一个名为“log.txt”的文件夹。