2011-03-22 78 views
1

當我開始相機意圖時,我給它一個文件名,我希望它使用。當我在手機上得到它時,它使用手機的默認文件名。這是沒有幫助的,因爲我稍後在應用程序中需要圖像名稱。相機意圖android

相機意圖代碼...

public void onClick(View view) { 
    String currentDateTimeString = DateFormat.getDateInstance().format(new Date()); 
    System.out.println(currentDateTimeString); 
    filename = ("/sdcard/" + currentDateTimeString + ".jpg"); 

    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
    File file = new File(Environment.getExternalStorageDirectory(), filename); 

    outputFileUri = Uri.fromFile(file); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
    startActivityForResult(intent, TAKE_PICTURE); 
    filetype = "image/jpeg"; 

} 
+0

詹姆斯,我所看到的代碼與我的代碼之間唯一的區別就是Intent的創建。這裏是我的行'意圖意圖=新的意圖(「android.media.action.IMAGE_CAPTURE」);' – 2011-03-22 22:09:11

+0

並做你的工作?與您的文件名? – James 2011-03-22 22:20:22

+0

是的,一秒鐘讓我發佈我的整個函數作爲答案... – 2011-03-22 22:29:36

回答

3

詹姆斯,

下面是我用它來捕捉圖像,它(我的應用程序名稱的子文件夾)保存到我所選擇的位置的功能。

public void imageFromCamera() { 
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
    if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ 
     Log.d(TAG, "No SDCARD"); 
    } else { 
     mImageFile = new File(Environment.getExternalStorageDirectory()+File.separator+"MyApp", 
      "PIC"+System.currentTimeMillis()+".jpg"); 
     mTempImagePath = mImageFile.getAbsolutePath(); 
     intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile)); 
     startActivityForResult(intent, TAKE_PICTURE); 
    } 
} 
+0

它給出了java.lang.RuntimeException:失敗遞送結果ResultInfo {who = null,request = 1,result = -1,data = Intent {act =內聯數據(有額外)}}到活動{ – nicky 2012-10-03 18:45:12