启动相机意图:
void openCamera() {
File imageDirectory = new File("/sdcard/myprog");
if (!imageDirectory.isDirectory()) imageDirectory.mkdir();
String path = imageDirectory.toString().toLowerCase();
String name = imageDirectory.getName().toLowerCase();
ContentValues values = new ContentValues();
values.put(Media.TITLE, "Image");
values.put(Images.Media.BUCKET_ID, path.hashCode());
values.put(Images.Media.BUCKET_DISPLAY_NAME,name);
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(Media.DESCRIPTION, "Image capture by camera");
values.put("_data", "/sdcard/myprog/1111.jpg");
Uri uri = getContentResolver().insert( Media.EXTERNAL_CONTENT_URI , values);
Intent i = new Intent("android.media.action.IMAGE_CAPTURE");
i.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(i, 0);
}
然后......
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==0 && resultCode==RESULT_OK) {
Uri path = data.getData();
...
我尝试了很多样本用我的相机在我的程序上拍照,然后在我的程序中使用该图片,但是:
-i在这里得到一个例外:Uri path = data.getData();
- 或者我得到一个空值:Uri path = data.getData();
获取拍摄的相机图片网址的正确方法是什么?
谢谢,Leslie
答案 0 :(得分:2)
你需要做
Uri path = Uri.parse(imageDirectory.toString());
至少如果imageDirectory持有Uri的字符串表示
或者我想你可以这样做
Uri imagePath = Uri.parse(path);
因为您已经获得了imagedirectory字符串