SORU
25 EKİM 2011, Salı


Android kaydetme harici depolama için dosya

Bir dizin oluşturma ve benim android uygulaması üzerinde bir dosya kaydetme ile küçük bir sorun var. Bu kod parçası bunu yapmak için kullanıyorum :

String filename = "MyApp/MediaTag/MediaTag-" objectId ".png";
File file = new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream fos;

fos = new FileOutputStream(file);
fos.write(mediaTagBuffer);
fos.flush();
fos.close();

Ama bir istisna atma

java.ıo.FileNotFoundException: /mnt/sdcard/Uygulamam/MediaCard/MediaCard-0.png (böyle bir dosya ya da dizin)

hatta : fos = new FileOutputStream(file);

Eğer dosya hazırladım : "MyApp/MediaTag-" objectId " Bu çalışma, ama Eğer başka bir dizine bir dosya oluşturmak ve kaydetmek için çalışırsanız istisna atma. Yani neyi yanlış yapıyorum fikri olan var mı?

Ve başka bir soru: Eğer kullanıcı Disk Drive gibi onun o aygıtı bağlayın eğer sadece Galeri onları görmek, böylece dosyalarımı özel harici depolama yapmak için herhangi bir yolu var mı?

CEVAP
25 EKİM 2011, Salı


Bu fonksiyon, SD kart içinde bitmap kaydetmek için kullanın

private void SaveImage(Bitmap finalBitmap) {

    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root   "/saved_images");    
    myDir.mkdirs();
    Random generator = new Random();
    int n = 10000;
    n = generator.nextInt(n);
    String fname = "Image-"  n  ".jpg";
    File file = new File (myDir, fname);
    if (file.exists ()) file.delete (); 
    try {
           FileOutputStream out = new FileOutputStream(file);
           finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
           out.flush();
           out.close();

    } catch (Exception e) {
           e.printStackTrace();
    }
}

ve apaçık olarak bu ekleyin

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

DÜZENLEME:Bu hattı kullanarak mümkün Galeri görünümünde kaydedilen görüntüler görebilirsiniz.

sendBroadcast(new Intent(
Intent.ACTION_MEDIA_MOUNTED,
            Uri.parse("file://"   Environment.getExternalStorageDirectory())));

bu linke bak da http://rajareddypolam.wordpress.com/?p=3&preview=true

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • mipd1980

    mipd1980

    25 EKİM 2006
  • SuppressedStorm

    SuppressedSt

    11 AĞUSTOS 2013