2011-03-22 77 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