2012-04-12 5 views
1

Ich versuche, meiner App zu sagen, dass einige Bilder, die bereits heruntergeladen werden, in der Galerie meines Telefons erscheinen. Die Bilder werden gut heruntergeladen und in meiner App angezeigt, sie haben keine Erweiterung, ihre Namen sind nur eine MD5.Anzeige von heruntergeladenen Bildern in meiner Handy-Galerie

hier ist, wie ich versuche, dies zu tun:

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); 
    } 

Die App stürzt auf dieser Linie:

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

mit dieser Nachricht:

java.io. FileNotFoundException: /mnt/sdcard/data/com.example.app/images: Öffnen fehlgeschlagen: EISDIR (ist ein Verzeichnis)

Weiß jemand von was es kommt?

Antwort

0

Ich hatte das gleiche Problem. Es stellt sich heraus, dass dieser Fehler auftritt, wenn ein Ordner mit demselben Dateinamen vorhanden ist. Zum Beispiel hatte ich einen Ordner namens "log.txt".

Verwandte Themen