Java Android intent.getData()空指针异常
我有一个安卓应用程序可以启动智能手机摄像头Java Android intent.getData()空指针异常,java,android,Java,Android,我有一个安卓应用程序可以启动智能手机摄像头 Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST ); 为了显示拍摄的照片,我使用了这段代码 @Override protected void onActivityResult(int requestCode, int re
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST );
为了显示拍摄的照片,我使用了这段代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
setImage=true;
if (requestCode == CAMERA_PIC_REQUEST && resultCode == RESULT_OK) {
if(data!=null)
{
ImageView image = (ImageView) findViewById(R.id.imagePreview);
Bundle extras = data.getExtras();
Bitmap mImageBitmap = (Bitmap) extras.get("data");
image.setImageBitmap(mImageBitmap);
}
}
}
这工作得很好,但是如果我想获得拍摄的照片的路径,我必须使用(intent)data.getData()
,但这会返回一个null
值。我应该怎么做才能解决这个问题?尝试以下方法:
编辑:
要获取图像的路径,请尝试以下代码:
uriselectedimage=data.getData();
字符串[]filePathColumn={MediaStore.Images.Media.DATA};
Cursor Cursor=getContentResolver().query(selectedImage,
filePathColumn,null,null,null);
cursor.moveToFirst();
int columnIndex=cursor.getColumnIndex(filePathColumn[0]);
String imagePath=cursor.getString(columnIndex) 试试这个,希望它能帮助你
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
String imageName = picturePath.substring(picturePath.lastIndexOf(
"/", picturePath.length()));
你试过了吗?Bitmap mImageBitmap=(Bitmap)data.getExtras().get(“data”)代码>可能重复,但我需要的是路径而不是位图….我已经有了正确的位图对象….@Waqas是的,但是data.getData()不起作用…我需要这个给你solution@Dennis:要获取图像的实际路径,您需要从MediaStore
contentprovider查询MediaStore.Images.Media.DATA
列,但我只需要图片的路径
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String imagePath = cursor.getString(columnIndex); <---- Here is your image path.
cursor.close();
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
String imageName = picturePath.substring(picturePath.lastIndexOf(
"/", picturePath.length()));