2012-05-29 162 views
1

我想圖像保存到SD卡,我點擊「OK」 /勾選後攝像頭加入了一些代碼它。但是,我的應用程序退出exits.Would我必須檢查我試圖存儲它的目錄是否存在?我該怎麼做?.. file.exists(){file.mkdirs}? ..在我的代碼中,我嘗試將它存儲在每個SD卡中存在的/ Android文件夾中。安卓應用程序時,試圖圖像保存到SD卡

  file = new File(Environment.getExternalStorageDirectory().getPath() 
       + "/Android/" + "bhe_app" + ".jpg"); 

    imageUri = Uri.fromFile(file); 

i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
     i.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 

     startActivityForResult(i, cameraData); 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     bmp = (Bitmap) extras.get("data"); 
     iv.setImageBitmap(bmp); 


    } 
} 

回答

3

在圖片創建文件之前創建目錄重要。

boolean createdDirectory = new File(Environment.getExternalStorageDirectory().getPath() + "/directory1/directory2/directory3/").mkdirs(); 

變量createdDirectory

真當且僅當該目錄的創建,以及所有 所需的父目錄;否則爲false

你必須確保你的應用程序有可能寫入SD卡的權限(請檢查您AndroidManifest.xml

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

我剛剛添加了許可..謝謝 – Ravin

0

你有沒有在AndroidManifest.xml給出的許可Write_External_Storage,這就是保存在SD卡

+0

我只是did..but應用依然存在,我打後照相機的「確定」/複選標記按鈕..這是因爲沒有目錄是這樣的... ...以及如何檢查目錄是否退出並且它不創建它..與dir.mkdirs有什麼關係( )? – Ravin

+0

什麼錯誤,看到它的日誌,並嘗試直接存儲圖像的SD卡上,而不是把它在目錄 –

+0

我一直在尋找通過谷歌的教程,我作出了code.Now一些變化,圖像被保存,但一旦我點擊相機的複選標記,應用程序退出。我做了一些變化,如: file = new File( Environment .getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), 「BHE App」); mediaFile = newFile(file.getPath()+ File.separator +「Image1.jpg」); if(!file.exists()){try {file.createNewFile(); }趕上(IOException的發送){e.printStackTrace (); }} imageUri = Uri.fromFile(mediaFile); – Ravin