我建立一些调用相机活动的应用程序..
我只是从我的应用中拍照并将其发送到网络服务器..
但我无法获得我的图像路径..
我总是在尝试获取图像路径时遇到NullException错误..
这是调用相机活动时的代码:
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
this.startActivityForResult(camera, PICTURE_RESULT);
这是活动结果的代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == PICTURE_RESULT){
if (resultCode == Activity.RESULT_OK) {
takePicture(data);
} else if (resultCode == Activity.RESULT_CANCELED) {
}
}
}
protected void takePicture(Intent data) {
Bundle b = data.getExtras();
pic = (Bitmap) b.get("data");
if (pic != null) {
imagePicture.setImageBitmap(pic);
}
}
我的代码有问题吗?
由于
答案 0 :(得分:2)
好的,我看到了你的问题。您没有设置开始的路径。请看这个文档。
http://developer.android.com/reference/android/provider/MediaStore.html#ACTION_IMAGE_CAPTURE
所以你看,当你调用ACTION_IMAGE_CAPTURE时,你没有传递额外的EXTRA_OUTPUT
,告诉应用程序将存储图片的位置。此EXTRA_OUTPUT是文件的路径。
所以,在你实现意图的地方,这样做:
Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
URI pictureUri = Uri.fromFile(new File(<path to your file>));
camera.putExtra(MediaStore.EXTRA_OUTPUT, pictureUri);