这就是在2.2上的工作方式(与之前的版本不同)。当启动意图时
String fileName = "temp.jpg";
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mCapturedImageURI);
startActivityForResult(intent, CAPTURE_PICTURE_INTENT);
你需要记住mCapturedImageURI
。
当你拍摄照片时,在onActivityResult()
中使用该URI获取文件路径:
String[] projection = { MediaStore.Images.Media.DATA}
Cursor cursor = managedQuery(mCapturedImageURI, projection, null, null, null)
int column_index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA)
cursor.moveToFirst()
String capturedImageFilePath = cursor.getString(column_index_data)
更新: 在新的Android设备上,您不需要使用MediaStore.EXTRA_OUTPUT,而是可以从onActivityResult(...,Intent data)接收到的data.getData()中推断出图像/视频URI,如下链接所描述。
Android ACTION_IMAGE_CAPTURE Intent
但是,由于此部分受制于制造商的适应性,您仍然可能会遇到需要使用“旧”方法的手机。